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
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
代码:
/**
* @param {number[]} A
* @return {number}
*/
var maxScoreSightseeingPair = function(A) {
let sum=0
let res=A[0]//用来存储最大的A[i]+i
for(let i=1;i<A.length;i++){
sum=Math.max(res+A[i]-i,sum)
res=Math.max(res,A[i]+i)
}
return sum
};
这个式子可以看做A[i]+i+A[j]-j
,只要A[i]+i
的值和A[j]-j
都最大,那这个值就是最大的
只要A[i]+i
的值和A[j]-j
都最大,那这个值就是最大的