美文网首页
5631. 跳跃游戏 VI(单调队列+dp)

5631. 跳跃游戏 VI(单调队列+dp)

作者: 来到了没有知识的荒原 | 来源:发表于2020-12-20 14:12 被阅读0次

    5631. 跳跃游戏 VI

    单调队列+dp

    class Solution {
    public:
        int maxResult(vector<int>& nums, int k) {
            int n=nums.size();
            int f[n];
            f[0]=nums[0];
            deque<int>q;
            q.push_back(0);
            for(int i=1;i<n;i++){
                if(q.front()<i-k)q.pop_front();
                f[i]=f[q.front()]+nums[i];
                while(q.size() && f[q.back()]<=f[i])q.pop_back();
                q.push_back(i);
            }
            return f[n-1];
        }
    };
    

    相关文章

      网友评论

          本文标题:5631. 跳跃游戏 VI(单调队列+dp)

          本文链接:https://www.haomeiwen.com/subject/dtkknktx.html