C++ 程式碼找出在 min max 刪除遊戲後的最後數字
假設我們有一個包含 n 個元素的陣列 A,在白板上寫了 n 個數字。Amal 和 Bimal 正在玩一個回合制遊戲。在每回合,他們會選擇一個數字並將其從白板中移除。Amal 先玩。Amal 想要讓他在白板上留下的最後一個數字最小,而 Bimal 想要最大化它。我們必須找到將留在白板上的數字。
因此,如果輸入類似 A = [2, 1, 3],則輸出為 2,因為 Amal 將移除 3,Bimal 將移除 1,因此最終數字將為 2。
步驟
為了解決這個問題,我們將遵循以下步驟 -
n := size of A sort the array A return A[floor of ((n - 1)/2)]
示例
讓我們看看以下實現以獲得更好的理解 -
#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> A){
int n = A.size();
sort(A.begin(), A.end());
return A[(n - 1) / 2];
}
int main(){
vector<int> A = { 2, 1, 3 };
cout << solve(A) << endl;
}輸入
{ 2, 1, 3 }輸出
2
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP