| 12345678910111213141516171819202122232425 | func PredictTheWinner(nums []int) bool {	n := len(nums)	dp := make([][][]int, n)	for i := range dp {		dp[i] = make([][]int, n)	}	for i := 0; i < n; i++ {		dp[i][i] = []int{0, nums[i]}	}	for l := 2; l <= n; l++ {		for i := 0; i < n-l+1; i++ {			init, tail := dp[i][i+l-2], dp[i+1][i+l-1]			t := l % 2			score := make([]int, 2)			if nums[i]+tail[t]-tail[1-t] <= nums[i+l-1]+init[t]-init[1-t] {				score[t], score[1-t] = nums[i+l-1]+init[t], init[1-t]			} else {				score[t], score[1-t] = nums[i]+tail[t], tail[1-t]			}			dp[i][i+l-1] = score		}	}	t := n % 2	return dp[0][n-1][1-t] <= dp[0][n-1][t]}
 |