# Leetcode 486 - Predict the Winner

`Note:`

- Both players play
`optimally`

, then when should we return`true`

?- When we’re sure no matter which end
`2`

chooses, it always returns`false`

.

- When we’re sure no matter which end
- Use
`canChoose`

to denote whether it’s`1`

‘s turn.

`Question:`

You are given an integer array `nums`

. Two players are playing a game with this array: player 1 and player 2.

Player 1 and player 2 take turns, with player 1 starting first. Both players start the game with a score of `0`

. At each turn, the player takes one of the numbers from either end of the array (i.e., `nums[0]`

or `nums[nums.length - 1]`

) which reduces the size of the array by `1`

. The player adds the chosen number to their score. The game ends when there are no more elements in the array.

Return `true`

if Player 1 can win the game. If the scores of both players are equal, then player 1 is still the winner, and you should also return `true`

. You may assume that both players are playing optimally.

`Example:`

1 | Input: nums = [1,5,2] |

`Code:`

1 | /** |