2140、解决智力问题

题目

解答

正向不好做,反向遍历。

定义:dpi [i,n)的分数

初始化:dpn=0

递推:dpi=max(dpi+1,questionsi0+dpi+questions\[i1+1]) 如果越界了,就截断到dpn

最后return dp0即可

cpp 复制代码
class Solution {
public:
    long long mostPoints(vector<vector<int>>& questions) {
        int n = questions.size();
        //定义dp[i]:[i,n)的分数
        //dp[i]=max(dp[i+1],questions[i][0]+dp[i+questions[i][1]+1])
        //如果i+questions[i][1]>=n 则dp[i]=max(dp[i+1],questions[i][0])
        vector<long long> dp(n+1);
        dp[n] = 0;
        for(int i=n-1;i>=0;i--){
            if(i+questions[i][1]>=n)
                dp[i]=max(dp[i+1],(long long)questions[i][0]);
            else
                dp[i]=max(dp[i+1],(long long)questions[i][0]+dp[i+1+questions[i][1]]);
        }
        return dp[0];
    }
};

时间复杂度O(n)

空间复杂度O(n)

相关推荐
CSharp精选营1 小时前
关系型 vs 非关系型:从原理到选型,一文搞定数据库核心分类
数据结构·nosql·关系型数据库·非关系型数据库·技术选型
美团技术团队2 小时前
LongCat 开源 VitaBench 2.0:长期动态智能体基准新标杆
人工智能·算法
To_OC19 小时前
LC 207 课程表:刚学图论那会儿,我连这是拓扑排序都没看出来
javascript·算法·leetcode
To_OC19 小时前
LC 208 实现 Trie 前缀树:曾被名字劝退,写完发现是送分题
javascript·算法·leetcode
BadBadBad__AK21 小时前
线段树维护区间 k 次方和
c++·数学·算法·stl
_清歌1 天前
DSpark 深度解读:DeepSeek-V4 如何用「半自回归」把推理速度提升 85%
算法
统计实现局1 天前
SVD 的三步走:双对角化、Givens 收敛、排序
算法
躬行见万象1 天前
《VLA 系列》UniLab 强化训练 | G1 机器人 |复现
算法
统计实现局1 天前
对称不定分解(Bunch-Kaufman):为什么 Cholesky 不够用
算法