当前位置: 首页 > news >正文

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

1.题目

给定一个二进制数组 nums 和一个整数 k,假设最多可以翻转 k 个 0 ,则返回执行操作后 数组中连续 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.算法原理

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;
    }
};

相关文章:

  • 兼职网|基于Java+vue的兼职网系统(源码+数据库+文档)
  • 交换机、路由器、VLAN、单臂路由、三层交换、STP
  • python学习笔记(6)运算符
  • 蓝桥杯—日期遍历
  • 1. 两数之和
  • 美颜SDK兼容性挑战:如何让美颜滤镜API适配iOS与安卓?
  • 2025宁德时代测评Verify考什么?网申测评如何通过SHL笔试|附真题线上笔试考点、高分攻略、CATL新能源科技SHL测评宁德社招题目、面试攻略、求职建议
  • 华为MPLS Virtual PN option C1(有/无RR)配置wireshark抓包分析
  • AgGridReact 禁止checkbox复选框选中(isRowSelectable)
  • uniapp实现小票打印 兼容微信小程序安卓
  • 数据结构和算法(十一)--图
  • 【开发问题记录】高德地图 Web 端开发详解:高德地图 API 最佳实践指南(安装、marker添加、逆向地理编码、实际业务案例实操)
  • 华为MPLS Virtual PN option A配置wireshark抓包分析
  • unidbg读写跟踪还原X-Gorgon
  • BY组态-低代码web可视化组件
  • R语言实现轨迹分析--traj和lcmm包体会
  • 遗传算法优化支持向量机分类是一种将遗传算法与支持向量机相结合的方法
  • 快速入手-基于Django-rest-framework的自身组件权限认证(九)
  • 49. 字母异位词分组
  • 【微服务架构】SpringCloud Alibaba(二):Nacos作为配置中心(Config数据模型、集成SpringBoot、动态刷新原理)
  • 注册软件开发公司需要什么条件/搜索引擎seo外包
  • 合肥大型网站建设公司/西安百度快照优化
  • 网站正在建设中界面设计/苏州网站优化公司
  • 椒江网站建设578做网站/seow
  • 深圳响应式网站开发/软文营销
  • 兰州做网站改版的公司/引流推广平台