在做题中学习(45):最大连续1的个数III

1004. 最大连续1的个数 III - 力扣(LeetCode)

解法:同向双指针————“滑动窗口”

思路:因为要返回数组中连续的数,就相当于一个子数组,而要的是一个可以翻转 <=  k个0的子数组使它可以变为全1的子数组,那就可以把问题转为:找出一个最大的子数组,它里面有<=k个0.

因此一定要定义一个计数器记录0的个数。

通过上图,可以看到当right进窗口到此位置时,子数组中0的个数 > k ,所以需要通过left出窗口来维持0的数量

1.left = 0,right = 0

2.进窗口————1就略过,0就计数器++

3.判断————0的个数>k

4.出窗口+再次判断————0就略过,1就left++

5.更新数据————选出更大的len

class Solution 
{
public:
    int longestOnes(vector<int>& nums, int k) 
    {
        int zcount = 0,len = 0;
        int z = 0;
        for(int left = 0,right = 0;right<nums.size();)
        {
            //1.进窗口
            if(nums[right]==0)
            {
                zcount++;
            }
            //2.判断
            while(zcount>k)
            {
                //3.出窗口
                if(nums[left]==1)
                {
                    left++;
                }
                else
                {
                    zcount--;
                    left++;
                }
            }
            //4.更新数据
            len = max(len,right - left + 1);
            right++;
        }
        return len;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/302129.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springboot git配置文件自动刷新失败问题排查

http://{ip}:{port}/refresh 说明&#xff1a;springBoot版本是1.5.9&#xff0c;接口路径与2.x&#xff0c;不同 路径区别&#xff1a;/refresh VS /actuator/refresh 用postman调用refresh接口刷新git配置&#xff0c;报错如下&#xff0c;没有权限 在服务本地启动&#…

数字化妆,销量爆灯:美妆个护行业的直播营销新姿势

“ 直播电商走进全域营销驱动增长的时代 ” 文&#xff5c;欣桐&凯丰 编辑 | 靳淇 出品&#xff5c;极新 过去几年&#xff0c;美妆个护是直播电商平台中冲锋最猛的行业之一。李佳琦、薇雅等头部主播的“疯狂带货”下&#xff0c;美妆个护品牌脱颖而出&#xff0c;花…

听GPT 讲Rust源代码--compiler(38)

File: rust/compiler/rustc_parse/src/parser/expr.rs 在Rust的源代码中&#xff0c;rust/compiler/rustc_parse/src/parser/expr.rs这个文件扮演了解析表达式的角色。表达式是Rust中的一种语法结构&#xff0c;用于表示程序中的计算、操作和值。 该文件定义了一个名为ExprPa…

CVE-2023-36025 Windows SmartScreen 安全功能绕过漏洞

CVE-2023-36025是微软于11月补丁日发布的安全更新中修复Windows SmartScreen安全功能绕过漏洞。攻击者可以通过诱导用户单击特制的URL来利用该漏洞&#xff0c;对目标系统进行攻击。成功利用该漏洞的攻击者能够绕过Windows Defender SmartScreen检查及其相关提示。该漏洞的攻击…

视频监控系统EasyCVR平台可视化模式设备列表搜索及八分屏播放模式定制开发

国标GB28181协议EasyCVR安防平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力&#xff0c;平台支持7*24小时实时高清视频监控&#xff0c;能同时播放多路监控视频流&#xf…

DC-DC升压/降压 隔离电源解决方案PCB和原理图

DC-DC隔离电源模块是一种基于变换原理而设计的模块,可以将一种电压转变为另一种电压,同时实现电气信号的隔离和滤波作用。其工作原理基于电感和电容的原理,一般由输入电路、输出电路、开关电路和控制电路四部分组成。 DC-DC电源模块的众多优点是大家众所周知的&#xff0c;DC-…

高效构建Java应用:Maven入门和进阶(二)

高效构建Java应用&#xff1a;Maven入门和进阶&#xff08;二&#xff09; 二.基于IDEA的Maven的工程创建2.1 梳理Maven工程GAVP属性2.2 Idea构建Maven JavaSE工程2.3 Idea构建Maven JavaEE工程2.4 Maven工程项目结构说明 二.基于IDEA的Maven的工程创建 2.1 梳理Maven工程GAVP…

最实用!2023年7款免费App设计工具,让你的应用界面更上一层楼

即时设计 即时设计是一种高效的在线原型设计工具&#xff0c;支持移动终端、网络终端和网页终端的产品原型设计。无需下载&#xff0c;可通过浏览器操作&#xff0c;支持软件下载&#xff0c;随时随地设计和模拟。学习难度低&#xff0c;强大的材料库和简单的设计界面可以帮助…

STM32 基础知识(探索者开发板)--146讲 IIC

IIC特点&#xff1a; 同步串行半双工通信总线 IIC有一个弱上拉电阻&#xff0c;在主机和从机都没有传输数据下拉时&#xff0c;总线会自动上拉 SCL在低电平期间&#xff0c;改变SDA的值来上传数据&#xff0c;方便SCL电平上升时进行数据读取 SCL在高电平期间&#xff0c;不能…

微信getAccessToken限制问题

微信getAccessToken限制问题 错误代码&#xff1a;45009&#xff0c;错误信息&#xff1a;调用分钟频率受限 https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/mp-access-token/getAccessToken.html GET https://api.weixin.qq.com/cgi-bin/token 接口重复访问会…

英诺赛科PCB layout 设计案列分享1----高压单管

Layout设计中的几个关键步骤是布局、走线、铺铜、散热&#xff0c;英诺赛科高压单管GaN的Layout设计也不例外。 反激拓扑是高压单管GaN的典型应用&#xff0c;快充场合常用。该拓扑在地线的处理上都需特别注意&#xff0c;如下图所示&#xff0c;Layout时辅助绕组地、IC信号地功…

前端JS加密对抗由浅入深-2

前言&#xff1a; 本文主要讲解&#xff0c;针对前端非对称、多段加密数据传输站点&#xff0c;如何进行动态调试&#xff0c;如何进行安全测试。本次讲解不涉及任何漏洞方面&#xff0c;仅为学习探讨&#xff0c;该站点现已经更改加密方式&#xff0c;严禁非法测试&#xff0…

Uncaught (in promise) ReferenceError: require is not defined

在 Vue3 中加载项目路径下的资源图片,起初按照之前 vue 的写法 require 但浏览器却抛出了异常 Uncaught (in promise) ReferenceError: require is not defined 因为 require 采用的 webpack 加载方式,而 vue3 中通过 vite 的方式,两者存在差异,所以才产生了刚开始的一目; vu…

python基础教程八(循环1)

1. while循环 为避免多次重复的代码&#xff0c;我们会用到循环 while (condition): 执行语句 while循环的结构非常简单只要条件满足就一直循环直到&#xff0c;条件不满足为止。 例子如下&#xff1a; x1 while x<100:print(x)x1结果就是最简单的输出1-100的数字 while…

MySQL常用连接工具

Navicat 缺点&#xff1a;老版本不支持mysql8数据库连接&#xff0c;而且样式没有新版的好看 优点&#xff1a;新版支持多种数据连接&#xff0c;而且样式比较好看 HeidiSQL 官网&#xff1a;Download HeidiSQL 有一个非常好的优点就是不用输入表名称&#xff1a;双击就会自…

TS 36.211 V12.0.0-上行(4)-参考信号

本文的内容主要涉及TS 36.211&#xff0c;版本是C00&#xff0c;也就是V12.0.0。 本文具体内容为该协议的<Uplink>一章中的5.5节。

OS_lab——分页机制与内存管理

认真阅读章节资料&#xff0c;掌握什么是分页机制 调试代码&#xff0c;掌握分页机制基本方法与思路 代码pmtest6.asm中&#xff0c;212行~237行&#xff0c;设置断点调试这几个循环&#xff0c;分析究竟在这里做了什么 掌握PDE&#xff0c;PTE的计算方法 动手画一画这个映…

C# OpenCvSharp DNN 部署yoloX

目录 效果 模型信息 项目 代码 下载 C# OpenCvSharp DNN 部署yoloX 效果 模型信息 Inputs ------------------------- name&#xff1a;images tensor&#xff1a;Float[1, 3, 640, 640] --------------------------------------------------------------- Outputs ---…

Showroom Environment gallery

展示厅环境-画廊 PBR包中的所有纹理。它们适用于URP和内建。在标准状态下,所有内容都是在URP下配置的。如果你有整个场景“粉红色”,请更改渲染设置。 简单的画廊内部,配有用于照片和图片的画布。非常适合您的虚拟画廊或展厅。此套餐包含一个展厅,您可以在其中展示您的作品…

python总结-生成器与迭代器

生成器与迭代器 生成器生成器定义为什么要有生成器创建生成器的方式一(生成器表达式) 创建生成器的方式二(生成器函数)生成器函数的工作原理总结 迭代器概念可迭代对象和迭代器区别for循环的本质创建一个迭代器 动态添加属性和方法运行过程中给对象、类添加属性和方法types.Met…