算法学习11——滑动窗口——最大连续1的个数

1.题目

给定一个二进制数组 nums 和一个整数 k,假设最多可以翻转 k0 ,则返回执行操作后 数组中连续 1 的最大个数

示例 1:

复制代码
输入:nums = [1,1,1,0,0,0,1,1,1,1,0], K = 2
输出:6
解释:[1,1,1,0,0,1,1,1,1,1,1]
粗体数字从 0 翻转到 1,最长的子数组长度为 6。

示例 2:

复制代码
输入:nums = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1], K = 3
输出:10
解释:[0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1]
粗体数字从 0 翻转到 1,最长的子数组长度为 10。

提示:

  • 1 <= nums.length <= 105
  • nums[i] 不是 0 就是 1
  • 0 <= k <= nums.length

2.算法原理

cpp 复制代码
class Solution {
public:
    int longestOnes(vector<int>& nums, int k) 
    {
        int ret =0;
        for(int left = 0,right=0,zero=0;right < nums.size();right++)
        {
            if(nums[right] == 0) zero++;
            while(zero > k)
            {
                if(nums[left++] == 0) zero--;
            }
            ret = max(ret,right-left+1);
        }
        return ret;
    }
};
相关推荐
拉姆哥的小屋11 小时前
从混沌到秩序:条件扩散模型在图像转换中的哲学与技术革命
人工智能·算法·机器学习
Sammyyyyy11 小时前
DeepSeek v3.2 正式发布,对标 GPT-5
开发语言·人工智能·gpt·算法·servbay
Li.CQ11 小时前
SQL学习笔记(二)
笔记·sql·学习
Huangxy__12 小时前
指针的补充学习
学习
sin_hielo12 小时前
leetcode 2110
数据结构·算法·leetcode
Jay200211112 小时前
【机器学习】33 强化学习 - 连续状态空间(DQN算法)
人工智能·算法·机器学习
panzer_maus12 小时前
归并排序的简单介绍
java·数据结构·算法
獭.獭.12 小时前
C++ -- STL【unordered_set和unordered_map的使用】
c++·stl·unordered_map·unordered_set
Smartdaili China12 小时前
掌握Java网页抓取:技术与示例完整指南
java·网络·学习·指南·网页·住宅ip·爬虫api