#刷题交流#
观光景点组合得分问题:
1. 理解问题,你需要找到一对景点 (i, j),其中 i < j,使得 values[i] + values[j] + i - j 最大。这个表达式可以分解为 (values[i] + i) + (values[j] - j)。
2. 优化思路:对于每个 j,我们只需要找到 i < j 使得 values[i] + i 最大。因此,我们可以遍历数组 values,同时维护一个变量 max_i 来记录当前最大的 values[i] + i。对于每个 j,计算 max_i + values[j] - j,并更新全局最大得分。
3. 算法步骤:初始化 `max_score` 为负无穷大;初始化 `max_i` 为 `values[0] + 0`;从 `j = 1` 开始遍历数组 `values`;计算当前得分 `max_i + values[j] - j`;更新 `max_score`;更新 `max_i` 为 `max(max_i, values[j] + j)`;返回 `max_score`。
展开
评论