390.elimination-game.go 173 B

1234567
  1. func lastRemaining(n int) int {
  2. // 1 2 3 4 5 6 -> 2 4 6 -> 2 * (1 2 3) -> 2 * (n/2 + 1 - remaining)
  3. if n == 1 {
  4. return 1
  5. }
  6. return 2 * (n/2 + 1 - lastRemaining(n/2))
  7. }