LeetCode每日一题(双指针)

最大连续1的个数Ⅲ

使用双指针每次当0的个数达到k,开始反转,返回最大。

class Solution {
    public int longestOnes(int[] nums, int k) {
        int ans=-1;
        for(int i=0,j=0,cnt=0;i< nums.length;i++){
            if(nums[i]==0)cnt++;
            while(cnt>k){
                if(nums[j]==0)cnt--;
                j++;
            }
            ans=Math.max(ans,i-j+1);
        }
        return ans;
    }
}

总结:双指针很常用,不能忘记~

你可能感兴趣的:(JAVA,每日总结,算法,leetcode,算法)