【leetcode】1014. 最佳观光组合

题目

给定正整数数组 A,A[i] 表示第 i 个观光景点的评分,并且两个景点 i 和 j 之间的距离为 j - i。

一对景点(i < j)组成的观光组合的得分为(A[i] + A[j] + i - j):景点的评分之和减去它们两者之间的距离。

返回一对观光景点能取得的最高分。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/best-sightseeing-pair
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路

将变化的问题变为不变的问题
A[i]+i + A[j] - j
然后问题就简单了

代码

class Solution {
public:
    int maxScoreSightseeingPair(vector<int>& A) {
        int max_tmp = A[0], ans = 0;
        for (int i = 1; i < A.size(); i++) {
            ans = max(ans, max_tmp + A[i] - i);
            max_tmp = max(A[i] + i, max_tmp);
        }
        return ans;
    }
};

你可能感兴趣的:(LeetCode)