力扣--动态规划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;
    }
};
相关推荐
百度Geek说9 分钟前
百度智能云x中科大脑:「城市智能体」如何让城市更会思考
算法
嘟爸教编程17 分钟前
C++少儿编程(二十二)—条件结构
开发语言·c++
霖0041 分钟前
FPGA的PS基础1
数据结构·人工智能·windows·git·算法·fpga开发
幸幸子.2 小时前
LeetCode 组合总数
c++·算法·leetcode
☆璇2 小时前
【C++】哈希
c++·算法·哈希算法
Warren982 小时前
Java Record 类 — 简化不可变对象的写法
java·开发语言·jvm·分布式·算法·mybatis·dubbo
数据智能老司机3 小时前
图算法趣味学——桥和割点
数据结构·算法·云计算
菜就多练,以前是以前,现在是现在3 小时前
Codeforces Round 1042 (Div. 3)
c++·算法
学习编程的gas4 小时前
C++多态:理解面向对象的“一个接口,多种实现”
开发语言·c++
John.Lewis4 小时前
数据结构初阶(11)排序的概念与运用
c语言·数据结构·排序算法