Open lively-krishnan opened 2 years ago
题解: 快指针如果等于0 则,K值--, K值小于0的时候开始慢支针移动,慢支针等于0 的时候 K值++, 然后取最大值
根据题意: 我们最多可以将 K 个值从 0 变成 1 所以: 如果快指针 right 如果等于0 则,K值-- 也就是说我目前有 n 个K值 可以悔棋
K值小于0的时候开始慢支针移动, 这个时候快指针停止了,没有棋子可以悔了,我们开始用慢指针 left 在继续查找
然后 取 窗口指针(快指针 和慢指针的区间 就是窗口)的 最大值
var longestOnes = function(nums, k) {
let right = 0, left = 0, result = 0
while(right < nums.length) {
if(nums[right] === 0) {
k--
}
while(k < 0) {
if (nums[left] === 0) {
k++
}
left++
}
result = Math.max(result, right - left + 1)
right++
}
return result
};