less than 1 minute read

<-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];
    }
};