leetcode.1406. 石子游戏 III

1406. 石子游戏 III


图片说明



代表该玩家在区间内的最大值,那么一定是等于减去上一个玩家在区间的最小值
上一个玩家可能取了一个,两个或者三个。
所以可以有,;

class Solution {
public:
    int dp[50005];
    string stoneGameIII(vector<int>& a) {
        int sum=0,n=a.size();
        dp[n]=0;
        for(int i=n-1;i>=0;i--){
            sum+=a[i];
            int ans=dp[i+1];
            for(int j=1;j<=3&&i+j<=n;j++)
            ans=min(ans,dp[i+j]);
            dp[i]=sum-ans;
        }
        if(dp[0]==sum-dp[0])return "Tie";
        if(dp[0]>sum-dp[0])return "Alice";
        return "Bob";
    }
};
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-15 17:17
听说过付费实习,没想到这么贵啊我去,要不我给你个腰子吧
哈哈哈,你是老六:这种公司一定要注意啊,不要随便签合同,只要签了后面钱可能回不来,而且你通过法律途径也弄不回
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客83700679...:简历抄别人的,然后再投,有反馈就是简历不行,没反馈就是学历不行,多投多改只要技术不差机会总会有的
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务