力扣--动态规划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;
    }
};
相关推荐
v_for_van5 分钟前
力扣刷题记录1(无算法背景,纯C语言)
算法·leetcode·职场和发展
定偶6 分钟前
USB协议
c语言·网络·数据库
从此不归路7 分钟前
Qt5 进阶【10】应用架构与插件化设计实战:从「单体窗口」走向「可扩展框架」
开发语言·c++·qt·架构
瓦特what?8 分钟前
C++编程防坑指南(小说版)
android·c++·kotlin
sjjhd65210 分钟前
C++模拟器开发实践
开发语言·c++·算法
踩坑记录10 分钟前
leetcode hot100 25. K 个一组翻转链表 hard
leetcode·链表
七夜zippoe10 分钟前
大模型低成本高性能演进 从GPT到DeepSeek的技术实战手记
人工智能·gpt·算法·架构·deepseek
二年级程序员11 分钟前
qsort函数的使用与模拟实现
c语言·数据结构·算法·排序算法
Queenie_Charlie13 分钟前
素数(线性筛法)
c++·线性筛法·质数·简单数论
莹莹学编程—成长记16 分钟前
TCP/IP五层模型+网络传输基本流程
网络·c++