2140、解决智力问题

题目

解答

正向不好做,反向遍历。

定义:dp[i] [i,n)的分数

初始化:dp[n]=0

递推:dp[i]=max(dp[i+1],questions[i][0]+dp[i+questions[i][1]+1]) 如果越界了,就截断到dp[n]

最后return dp[0]即可

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)

相关推荐
Queenie_Charlie21 小时前
小陶与杠铃片
数据结构·c++·树状数组
We་ct21 小时前
LeetCode 205. 同构字符串:解题思路+代码优化全解析
前端·算法·leetcode·typescript
renhongxia121 小时前
AI算法实战:逻辑回归在风控场景中的应用
人工智能·深度学习·算法·机器学习·信息可视化·语言模型·逻辑回归
CoderCodingNo21 小时前
【GESP】C++四级/五级练习题 luogu-P1223 排队接水
开发语言·c++·算法
民乐团扒谱机21 小时前
【AI笔记】精密光时频传递技术核心内容总结
人工智能·算法·光学频率梳
云深处@21 小时前
【C++】AVL树
数据结构
CoderCodingNo1 天前
【GESP】C++五级/四级练习题 luogu-P1413 坚果保龄球
开发语言·c++·算法
Yvonne爱编码1 天前
JAVA数据结构 DAY4-ArrayList
java·开发语言·数据结构
2301_822366351 天前
C++中的命令模式变体
开发语言·c++·算法
XX風1 天前
3.2K-means
人工智能·算法·kmeans