还没有学会自己去解题,只能学着照猫画虎,一个debug一个debug去理解代码含义
public int longestOnes(int[] nums, int k) {
int left=0,right;
int len=nums.length;
int res = 0; //结果
int ks = 0; //统计零的个数
for(right=0;right<len;right++){
if (nums[right]==0){ //当遍历到零的时候+1
ks++;
}
//判断零的个数是否超过预定的值
while (ks>k){
//如果左指针的指向的是0就减一
if (nums[left]==0){
ks--;
}
//左指针右移
left++;
}
res=Math.max(res,right-left+1);
}
return res;
}