力扣--动态规划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;
    }
};
相关推荐
飞Link1 小时前
什么是 AirSim?一文读懂无人机仿真平台
python·算法·无人机
学逆向的1 小时前
C 堆区内存管理
c语言·开发语言·网络安全
xiaoye-duck3 小时前
《C++ 工具库实战》gflags 命令行参数解析库详解
c++·第三方库
一去不复返的通信er3 小时前
贪心算法-合并区间(LeetCode 56)
算法·leetcode·贪心算法
狂奔的sherry4 小时前
C++ 宏生成访问函数的代价:访问权限、调试和类型检查
c++·宏·编译·预处理器·类型检查
阿尼卡~4 小时前
VS Code 配置 C 语言开发环境(Windows 10/11):从 GCC 安装到运行、断点调试,一篇搞定
c语言·开发语言·windows
Shaoshing4 小时前
LeetCode100 49. 字母异位词分组
java·算法
YFJ_mily4 小时前
第二届区块链技术与基础模型国际学术会议(BTFM2027)
算法·区块链·能源·智能系统·rdlink研发家·机器人自动化
汤姆宝库5 小时前
收官深拆:第一性原理、产业电网与未来推演
大数据·人工智能·算法