力扣--动态规划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;
    }
};
相关推荐
Elias不吃糖10 分钟前
NebulaChat:C++ 高并发聊天室服务端
开发语言·c++·redis·sql·项目文档
帅中的小灰灰20 分钟前
C++编程策略设计模式
开发语言·c++·设计模式
钟智强32 分钟前
线性映射(Linear Mapping)原理详解:机器学习中的数学基石
人工智能·算法·机器学习
是小胡嘛1 小时前
华为云CentOS系统中运行http服务器无响应
linux·服务器·c++·http·centos·华为云
Sylvia-girl1 小时前
数据结构之线性表中的顺序表(1)
数据结构
福尔摩斯张2 小时前
C语言核心:string函数族处理与递归实战
c语言·开发语言·数据结构·c++·算法·c#
2501_941884612 小时前
云计算与边缘计算:解锁未来计算架构的智能边界
leetcode
程序猿小白日记2 小时前
云计算与物联网融合:推动智慧城市的未来发展
leetcode
江澎涌2 小时前
JHandler——一套简单易用的 C++ 事件循环机制
android·c++·harmonyos
liu****2 小时前
5.C语言数组
c语言·开发语言·c++