GRID//RUNNER

PREDICT THE WINNER MEDIUM

problema

Dado um array de inteiros nums, dois jogadores disputam uma partida. O Jogador 1 começa e eles se alternam. Na sua vez, o jogador remove um número de uma das pontas do array (o primeiro ou o último) e soma esse valor à sua pontuação. O jogo termina quando o array fica vazio.

Os dois jogam de forma ótima. Retorne true se o Jogador 1 puder vencer. Empate conta como vitória do Jogador 1.

Exemplo 1 · nums = [1, 5, 2] → false

Se o J1 pega 1, o J2 pega 5. Se o J1 pega 2, o J2 também pega 5. Em qualquer caso o J2 fica com o 5: a melhor partida do J1 dá 1 + 2 = 3 contra 5.

Exemplo 2 · nums = [1, 5, 233, 7] → true

O J1 pega 1. Se o J2 pegar 5 ou 7, o J1 pega 233. O J1 termina com 234 contra 12.

Restrições: 1 ≤ nums.length ≤ 20 · 0 ≤ nums[i] ≤ 10⁷