力扣 1014.简单观光组合

在这里插入图片描述
思路:用maxn表示对于A【i】来说,之前的一个最大观光分值,res表示A【0】到A【i】的一对最大观光分值

class Solution {
public:
    int maxScoreSightseeingPair(vector<int>& A) {
        int res = 0;
        int maxn = A[0];
        for(int i = 1;i < A.size();i++){
        	//因为距离,需要减一
            maxn--;
            res = max(A[i]+maxn,res);
            //判断是否更新maxn
            maxn = max(A[i],maxn);
        }
        return res;
    }
};

思路差不多的另一种解法:

class Solution {
public:
    int maxScoreSightseeingPair(vector<int>& A) {
        int res = 0;
        int maxn = A[0];
        for(int i = 1;i < A.size();i++){
            res = max(A[i]+maxn-i,res);
            maxn = max(A[i]+i,maxn);
        }
        return res;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章