Functional Recursion
It\'s easier to solve this problem by simulation. Using a recursion is funnier, IMHO.\n\nDeclaring mn and mx is needed due to C++ legacy issues (waiting for min
It\'s easier to solve this problem by simulation. Using a recursion is funnier, IMHO.\n\nDeclaring `mn` and `mx` is needed due to C++ legacy issues (waiting for `min` and `max` to be rewritten in STL with variadic templates).\n\n**C++**\n```cpp\nint minMaxGame(vector<int>& nums) {\n    auto mn = [](int a, int b){ return min(a, b); };\n    auto mx = [](int a, int b){ return max(a, b); };\n    function<int(int, int, function<int(int, int)>)> op = [&](int i, int j, function<int(int, int)> f) {\n        return j - i == 1 ? f(nums[i], nums[j]) : f(op(i, i + (j - i) / 2, mn), op(i + (j - i) / 2 + 1, j, mx));\n    };\n    return nums.size() == 1 ? nums.back() : op(0, nums.size() - 1, mn);\n}\n```
['C']