力扣 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;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章