力扣--动态规划1014.最佳观光组合

思路分析:

  1. 初始化左侧景点的评分为第一个景点的评分,最终结果为0。
  2. 从第二个景点开始遍历数组。
  3. 对于每个景点,计算当前观光组合的得分,即当前景点的评分 + 左侧景点的评分 - 两者之间的距离。
  4. 更新最终结果为当前得分和之前结果的较大值。
  5. 更新左侧景点的评分为当前景点的评分 + 其在数组中的索引。
  6. 遍历完成后,最终结果即为最高的观光组合得分。
cpp 复制代码
class Solution {
public:
    int maxScoreSightseeingPair(vector<int>& values) {
        // 获取数组的长度
        int n = values.size();
        
        // 初始化左侧景点的评分为第一个景点的评分
        int left = values[0];
        
        // 初始化最终结果为0
        int res = 0;
        
        // 从第二个景点开始遍历
        for(int i = 1; i < n; i++) {
            // 计算当前观光组合的得分,即当前景点的评分 + 左侧景点的评分 - 两者之间的距离
            int currentScore = left + values[i] - i;
            
            // 更新最终结果为当前得分和之前结果的较大值
            res = max(res, currentScore);
            
            // 更新左侧景点的评分为当前景点的评分 + 其在数组中的索引
            left = max(left, values[i] + i);
        }
        
        // 返回最终结果
        return res;
    }
};
相关推荐
myloveasuka6 分钟前
红黑树、红黑规则、添加节点处理方案
开发语言·算法
沉鱼.447 分钟前
枚举问题集
java·数据结构·算法
2301_810160957 分钟前
C++中的访问者模式高级应用
开发语言·c++·算法
郝学胜-神的一滴8 分钟前
走进计算机图形学的浪漫宇宙 | GAMES101 开篇课程全解析
c++·算法·图形渲染·计算机图形学
没头脑的男大9 分钟前
灵神,2x树的层序遍历,102,103,513
算法
m0_5180194810 分钟前
C++中的享元模式
开发语言·c++·算法
我带你来这儿就是为了告诉你我15 分钟前
C++23新特性前瞻
开发语言·c++·算法
陌夏19 分钟前
快速排序 (Quick Sort)
算法
罗超驿19 分钟前
Java数据结构_栈_算法题
java·数据结构·
IronMurphy29 分钟前
【算法二十九】 437. 路径总和 III
算法·深度优先