解題說明
C++ 解法
複雜度分析
虛擬碼
1. Create dp[n][n], where dp[i][j] = max score difference for current player on nums[i..j]
2. Base case: dp[i][i] = nums[i] (only one element to take)
3. For length = 2 to n:
a. For each start i where j = i + length - 1 < n:
- dp[i][j] = max(nums[i] - dp[i+1][j], nums[j] - dp[i][j-1])
4. Return dp[0][n-1] >= 0