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

更新日期: 15-Mar-2022

205 次瀏覽

開啟你的 事業

完成課程以獲得認證

開始
廣告