力扣--动态规划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;
    }
};
相关推荐
MindCareers几秒前
Beta Sprint Day 5-6: Android Development Improvement + UI Fixes
android·c++·git·sql·ui·visual studio·sprint
HUST9 分钟前
C语言 第十讲:操作符详解
c语言·开发语言
Hcoco_me9 分钟前
大模型面试题49:从白话到进阶详解SFT 微调的 Loss 计算
人工智能·深度学习·神经网络·算法·机器学习·transformer·word2vec
行稳方能走远9 分钟前
Android C++ 学习笔记2
c++
星火开发设计9 分钟前
链表详解及C++实现
数据结构·c++·学习·链表·指针·知识
修炼地11 分钟前
代码随想录算法训练营第五十三天 | 卡码网97. 小明逛公园(Floyd 算法)、卡码网127. 骑士的攻击(A * 算法)、最短路算法总结、图论总结
c++·算法·图论
小王和八蛋11 分钟前
负载均衡之DNS轮询
后端·算法·程序员
QQ_43766431411 分钟前
Qt-框架
c++·qt
CCPC不拿奖不改名16 分钟前
python基础:python语言的数据结构+面试习题
开发语言·数据结构·python·面试
炽烈小老头17 分钟前
【每天学习一点算法 2026/01/07】Fizz Buzz
学习·算法