最大连续1的个数 ||| ---- 滑动窗口

题目链接

题目:

分析:

  • 题目中说可以将最多k个0翻转成1, 如果我们真的这样算就会十分麻烦, 所以我们可以换一种思路: 找到一个最长的子数组, 最多有k个0
  • 解法一: 暴力解法: 找到所有的最多有k个0的子字符串, 返回最长的
  • 解法二: 找到最长的子数组, 我们可以想到"滑动窗口算法"
    • left = 0, right = 0;
    • 进窗口 计算0的个数
    • 判断 0的个数是否大于k
    • 出窗口 如果0的个数大于k, 则出窗口, 出到0的个数<=k为止
    • 更新数据 每次进窗口出窗口都要比较长度, 留下长的

代码:

java 复制代码
class Solution {
    public int longestOnes(int[] nums, int k) {
        int left = 0;
        int right = 0;
        int count = 0;
        int len = 0;
        while (right < nums.length) {
            if (nums[right] == 0)
                count++;
            while (count > k) {
                if (nums[left] == 0)
                    count--;
                left++;
            }
            len = Math.max(len, right - left + 1);
            right++;
        }
        return len;
    }
}
相关推荐
大江东去浪淘尽千古风流人物6 小时前
【SLAM】slam高动态位姿估计全链路拆解
算法·面试·职场和发展·视觉里程计·slam·vio·大疆
想你依然心痛7 小时前
量子计算对嵌入式密码学的挑战与后量子算法准备
算法·密码学·量子计算
Jerry10 小时前
LeetCode 28. 找出字符串中第一个匹配项的下标
算法
Jerry12 小时前
LeetCode 459. 重复的子字符串
算法
海石15 小时前
1500分的题目,确实有实力,不过还是我略胜一筹
算法·leetcode
海石15 小时前
【记忆化搜索】条条大路通AC,走好适合你的那一条,走到后再考虑走得快
算法·leetcode
Jerry17 小时前
LeetCode 151. 反转字符串中的单词
算法
a11177619 小时前
LM 算法迭代过程动画演示(SLAM)
算法
头茬韭菜19 小时前
Context 的生死抉择:四层压缩、截断算法与 Session Memory
算法·ai
Jerry20 小时前
LeetCode 541. 反转字符串 II
算法