概述
LeetCode:1423. 可获得的最大点数
滑动窗口,原来滑动窗口还能这么用,可以的可以的
首尾双指针, 求出 k 个数的最大值, 反过来, 就是一个 区间长度 len - k 的滑动窗口在移动,然后空出来的 k 个数组成 ans
AC Code
class Solution {
public int maxScore(int[] cp, int k) {
// 双指针
int len = cp.length - k;
int sum = 0, part = 0, left = 0, right = len;
// 初始化
for(int i = 0; i < cp.length; i++) {
sum += cp[i];
if(i < len) part += cp[i];
}
int ans = sum - part;
while(right < cp.length) {
part -= cp[left++];
part += cp[right++];
ans = Math.max(ans, sum - part);
}
return ans;
}
}
最后
以上就是笨笨眼睛为你收集整理的1423. 可获得的最大点数 ( 双指针 | 滑动窗口 )的全部内容,希望文章能够帮你解决1423. 可获得的最大点数 ( 双指针 | 滑动窗口 )所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复