链接:LeetCode486
过程:cv
思路:递归,dp
代码:
class Solution {
public boolean PredictTheWinner(int[] nums) {
int length = nums.length;
int[][] dp = new int[length][length];
for (int i = 0; i < length; i++) {
dp[i][i] = nums[i];
}
for (int i = length - 2; i >= 0; i--) {
for (int j = i + 1; j < length; j++) {
dp[i][j] = Math.max(nums[i] - dp[i + 1][j], nums[j] - dp[i][j - 1]);
}
}
return dp[0][length - 1] >= 0;
}
}
本文提供了一种解决LeetCode上第486题“预测赢家”的算法思路,采用递归和动态规划(dp)的方法,通过计算最大得分差来判断先手是否能赢得比赛。
2743

被折叠的 条评论
为什么被折叠?



