390. 消除游戏

给一个整数n,操作1..=n的数组,先从第一个删除隔一个删除一个再从最后一个开始隔一个删除,如此循环直到数组中只有一个数为止。

  1. 输入:n = 9
  2. 输出:6
  3. 解释:
  4. arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
  5. arr = [2, 4, 6, 8]
  6. arr = [2, 6]
  7. arr = [6]
输入:n = 7
输出:6
解释:
arr = [1, 2, 3, 4, 5, 6, 7]//奇数删除第一个
arr = [2, 4, 6]//头尾都删除
arr = [2, 6]//偶数个删除第一个不删最后一个,只删除第一个
arr = [6]



输入:n = 8
输出:6
解释:
arr = [1, 2, 3, 4, 5, 6, 7, 8]//偶数删除第一个
arr = [2, 4, 6, 8]//只删除头
arr = [2, 6]//偶数删除第二个,只删除尾
arr = [6]
count用来纪录删除第一个还是尾巴删除
  //偶数时候
        if n1 % 2 == 0 {
            if count == 0 {
                count = 1;
                left += temp;
            } else if count == 1 {
                count = 0;
                right -= temp;
            }
        }
//奇数时候
   else {
            count = match count {
                0 => { 1 }
                _ => { 0 }
            };
            right -= temp;
            left += temp;
        }
        temp *= 2;//扩大的差值
        n1 /= 2;//更新数据大小,但数据为1时停止