LeetCode 390. Elimination Game
2016-11-05 19:42
155 查看
Problem Statement
(Source) There is a list of sorted integers from 1 to n. Starting from left to right, remove the first number and every other number afterward until you reach the end of the list.Repeat the previous step again, but this time from right to left, remove the right most number and every other number from the remaining numbers.
We keep repeating the steps again, alternating left to right and right to left, until a single number remains.
Find the last number that remains starting with a list of length n.
Example:
Input: n = 9, 1 2 3 4 5 6 7 8 9 2 4 6 8 2 6 6 Output: 6
Solution
Credits @NathanNiclass Solution(object): def lastRemaining(self, n): """ :type n: int :rtype: int """ head = 1 step = 1 left = True while n > 1: if left or n % 2: head += step step <<= 1 left = not left n >>= 1 return head
相关文章推荐
- [LeetCode] Jump Game II
- LeetCode 292.Nim Game
- 【Leetcode】Nim Game
- 第五周:[Leetcode]55. Jump Game
- leetcode Jump Game II 题解
- LeetCode 292. Nim Game
- LeetCode 292. Nim Game
- Flip Game II -- LeetCode
- LeetCode 45 Jump Game II
- [LeetCode] Jump Game II
- Leetcode - Nim Game
- 一次失败的刷题经历:[LeetCode]292之尼姆游戏(Nim Game)(转)
- leetcode45 Jump Game II
- [leetcode] Jump Game II
- leetcode笔记:Nim Game
- Leetcode 55. Jump Game
- 【LeetCode】292.Nim Game_EASY(八)
- leetcode:Jump Game II 【Java】
- leetcode — jump-game
- Leetcode45 Jump Game II