尼采般地抒情

尼采般地抒情

尼采般地抒情

音乐盒

站点信息

文章总数目: 315
已运行时间: 1554

思路

贪心策略不行,如果玩家每次都选相对自己当下可选择的最大值,这样的贪心策略有错误,比如这个例子:

输入:nums = [1,5,233,7]

输出:true

解释:玩家 1 一开始选择 1 。然后玩家 2 必须从 5 和 7 中进行选择。无论玩家 2 选择了哪个,玩家 1 都可以选择 233 。

最终,玩家 1(234 分)比玩家 2(12 分)获得更多的分数,所以返回 true,表示玩家 1 可以成为赢家。


java实现

class Solution {
    public boolean PredictTheWinner(int[] nums) {
        return total(nums, 0, nums.length - 1, 1) >= 0;
    }

public int total(int[] nums, int start, int end, int turn) {
    if (start == end) {
        return nums[start] * turn;
    }
    int scoreStart = nums[start] * turn + total(nums, start + 1, end, -turn);
    int scoreEnd = nums[end] * turn + total(nums, start, end - 1, -turn);
    return Math.max(scoreStart * turn, scoreEnd * turn) * turn;

// if(turn == 1){
// return Math.max(scoreStart ,scoreEnd );
// }else{
// return Math.min(scoreStart ,scoreEnd );
// }
}
}

评论区