Elimination Game LeetCode solution in C++
1class Solution {2public:3int lastRemaining(int n) {4bool left = true;5int head = 1, step = 1; // step is the difference between adjacent elements.6while (n > 1) {7if (left || (n & 1)) { //(n&1)->odd8head = head + step;9}10step = step * 2;11n = n / 2;12left = !left;13}14return head;15}16};