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
廣告