1004.最大连续1的个数

简介: 1004.最大连续1的个数

题目:给定一个二进制数组nums 和一个整数k,如果可以翻转最多k个0,返回数组中连续1的最大个数。

解题思路:使用滑动窗口来实时维护left 和 right 了。在 right 向右移动的过程中,我们同时移动 left,直到left 为首个。

class Solution {
    public int longestOnes(int[] nums, int k) {
        int n = nums.length;
        int left = 0, lsum = 0, rsum = 0;
        int ans = 0;
        for (int right = 0; right < n; ++right) {
            rsum += 1 - nums[right];
            while (lsum < rsum - k) {
                lsum += 1 - nums[left];
                ++left;
            }
            ans = Math.max(ans, right - left + 1);
        }
        return ans;
    }
}


相关文章
|
4天前
|
算法 测试技术
LeetCode-1004. 最大连续1的个数 III
LeetCode-1004. 最大连续1的个数 III
|
4天前
leetcode-485:最大连续1的个数
leetcode-485:最大连续1的个数
25 0
|
4天前
和最小的K个数对
和最小的K个数对
|
7月前
|
算法
把数组里面数值排成最小的数
把数组里面数值排成最小的数
21 1
|
4天前
|
Java 编译器 C++
位1的个数(C++)
位1的个数(C++)
30 0
LeetCode 485. 最大连续 1 的个数 - 暴力法
定义两个变量 thisSum 每次遍历中的最大值 maxSum 返回值,所有遍历结果中的最大值
Leetcode——485. 最大连续 1 的个数
文章目录 1、题目 2、滑动窗口 3、一次遍历(官方题解)
Leetcode——485. 最大连续 1 的个数
|
机器学习/深度学习 算法
第k个数
第k个数
103 0