题目
- arr[i]+arr[j]-(j-i)可以转换成 arr[i]+i+arr[j]-j;也就是说 j 位置之前的 arr[i]+i 得是最大值,通过公式转换,只需要遍历一次即可
function process(arr) {
let preMax = arr[0] + 0,
max = -Infinity;
for (let j = 1; j < arr.length; j++) {
max = Math.max(max, preMax + arr[j] - j);
preMax = Math.max(preMax, arr[j] + j);
}
return max;
}