<-E 2293> Min Max Game
// Method 1
class Solution {
public:
int minMaxGame(vector<int>& nums) {
while(nums.size() > 1){
vector<int> temp;
bool m = false;
for(int i = 1; i < nums.size(); i += 2) {
int n;
m ? n = max(nums[i], nums[i - 1]) : n = min(nums[i], nums[i - 1]);
temp.push_back(n);
m = !m;
}
nums = temp;
}
return nums[0];
}
};
// Method 2
class Solution {
public:
int minMaxGame(vector<int>&v) {
int n = v.size();
while(n > 1) {
for(int i = 0; i < n / 2; i++) {
if(i % 2) {
int a = max(v[2 * i], v[2 * i + 1]);
v[i] = a;
}
else {
int a = min(v[2 * i], v[2 * i + 1]);
v[i] = a;
}
}
n = n / 2;
}
return v[0];
}
};