题目:
代码:
class Solution {
public:
int maxScoreSightseeingPair(vector<int>& A) {
int ans=A[0]+A[1]-1,m=A[0];
for(int i=2;i<A.size();i++){
m=max(m,A[i-1]+i-1);
ans=max(ans,m+A[i]-i);
}
return ans;
}
};
注意:如果采取两个max,分别记录A[i]-i和A[i]+i的最大值,最后相加的话,可能两个max的i值相等,情况会十分复杂。
该题采用变j,求下标小于j的最大A[i]+i即可