【滑动窗口】LeetCode 1004题解 | 最大连续1的个数 Ⅲ

最大连续1的个数 Ⅲ

  • 一、题目链接
  • 二、题目
  • 三、题目解析
  • 四、算法原理
    • 解法一:暴力枚举 + zero计数器
    • 解法二:滑动窗口
  • 五、编写代码
  • 六、时空复杂度

一、题目链接

最大连续1的个数 Ⅲ

二、题目

在这里插入图片描述

三、题目解析

注意题目中说的是最多k次,在一个数组翻转次数是可以 ≤ k的。

在这里插入图片描述

四、算法原理

因为翻转操作太复杂,无需翻转。所以可以把本题同等转化为:找0的个数不超过k的最长子数组

解法一:暴力枚举 + zero计数器

暴力枚举出所有0的个数不超过k的子数组,并用变量zero记录0的个数,时刻更新最长长度。


模拟暴力解法的过程,进而发现优化的地方:

right所指为1,zero不统计,right++
right所指为0,zero+=1,right++

在这里插入图片描述
接下来left++,right回退,开始枚举以第二个数开始的符合要求的子数组。发现right停在了一样的位置,再分析发现在蓝色区间内开始枚举的话,right一定会在一样的位置停下,并且zero还会超过限定次数:

在这里插入图片描述

综上得出规律1:找到一个结果后,right不用回退,left跳过这一区间。 此时zero为2,right再接着向右枚举。规律2:left向右移动结束后,right继续向右移动。—— 同向双指针

在这里插入图片描述

解法二:滑动窗口

在这里插入图片描述

五、编写代码

class Solution {
public:int longestOnes(vector<int>& nums, int k) {int n = nums.size(), left = 0, right = 0, zero = 0, ret = 0;while (right < n){if (nums[right] == 0) zero++;// 进窗口while (zero > k) // 判断if (nums[left++] == 0) zero--;// 出窗口ret = max(ret, right - left + 1);// 更新结果right++;}return ret;}
};

六、时空复杂度

时间复杂度:O(n)
空间复杂度:O(1)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyTorch音频处理技术及应用研究:从特征提取到相似度分析

文章目录 音频处理技术及应用音频处理技术音视频摘要技术音频识别及应用 梅尔频率倒谱系数音频特征尔频率倒谱系数简介及参数提取过程音频处理快速傅里叶变换(FFT)能量谱处理离散余弦转换 练习案例&#xff1a;音频建模加载音频数据源波形变换的类型绘制波形频谱图波形Mu-Law 编…

鸿蒙OSUniApp 实现的语音输入与语音识别功能#三方框架 #Uniapp

UniApp 实现的语音输入与语音识别功能 最近在开发跨平台应用时&#xff0c;客户要求添加语音输入功能以提升用户体验。经过一番调研和实践&#xff0c;我成功在UniApp项目中实现了语音输入与识别功能&#xff0c;现将过程和方法分享出来&#xff0c;希望对有类似需求的开发者有…

2025年卫星遥感行业最新发展趋势深度分析

一、国内发展趋势&#xff1a;政策引领与技术突破双轮驱动 &#xff08;一&#xff09;政策体系持续完善&#xff0c;顶层设计深化行业发展 国家级战略与标准体系构建 中国政府将卫星遥感产业纳入“十四五”规划核心战略&#xff0c;明确构建“通导遥”一体化空间基础设施。20…

SIP协议栈--osip源码梳理

文章目录 osiposip主体结构体code main函数 状态机转化结构体code状态转换 sip事务结构体code osip_dialog结构体code 创建并发送200 OK响应 osip_message结构体code osip_eventcode 打印接收到的SIP消息 osip OSIP&#xff08;Open Source Implementation of SIP&#xff09;…

Linux之Yum源与Nginx服务篇

1.Yum源知识理论总结概括 Yum源概述 Yum 源 即软件仓库的标识&#xff0c;里面承载着软件包集合 Yum源组成 包含模块 【OS】、【everything】、【EPOL】、【debuginfo】、【source】、【update-source】 【os】:简称operator system 它内部包含操作系统的核心组件&#x…

从单体架构到微服务:架构演进之路

引言&#xff1a;当“大货车”遇上“集装箱运输” 在软件开发领域&#xff0c;单体架构曾像一辆载满货物的大货车&#xff0c;将所有功能打包在一个应用中。但随着业务复杂度飙升&#xff0c;这辆“大货车”逐渐陷入泥潭&#xff1a;启动慢如蜗牛、故障波及全局、升级如履薄冰……

AM32电调学习解读九:ESC上电启动关闭全流程波形分析

这是第九篇&#xff0c;前面的文章把各个模块的实现都介绍了一轮&#xff0c;本章是从运行的角度结合波形图&#xff0c;把整个流程走一遍。 先看下一运行的配置&#xff0c;我把一些配置关闭了&#xff0c;这样跑起来会好分析一些&#xff0c;不同配置跑起来效果会有差异。使用…

全球宠物经济新周期下的亚马逊跨境采购策略革新——宠物用品赛道成本优化三维路径

在全球"孤独经济"与"银发经济"双轮驱动下&#xff0c;宠物用品市场正经历结构性增长。Euromonitor数据显示&#xff0c;2023年全球市场规模突破1520亿美元&#xff0c;其中中国供应链贡献度达38%&#xff0c;跨境电商出口增速连续三年超25%。在亚马逊流量红…

reshape/view/permute的原理

在pytorch中&#xff0c;Tensor的存储是行主序的&#xff0c;也就是意味着最后一个维度的元素的存储时连续的&#xff0c;reshape和view并不改变元素存储的内存&#xff0c;仅仅改变访问的间隔&#xff0c;下面举例说明&#xff1b; 比如一个23的Tensor在内存中的存储是连续的&…

upload-labs靶场通关详解:第11关

一、分析源代码 $is_upload false; $msg null; if (isset($_POST[submit])) {if (file_exists(UPLOAD_PATH)) {$deny_ext array("php","php5","php4","php3","php2","html","htm","phtml"…

L1-7 最短字母串【保姆级详细讲解】

请你设计一个程序&#xff0c;该程序接受起始字母和目标字母作为输入&#xff0c;通过在字母表中向前或向后移动来计算两个给定字母之间的最短路径。然后&#xff0c;程序会沿着最短路径打印出从起始字母到目标字母的所有字母。例如&#xff0c;如果输入“c”和“k”作为起始字…

项目QT+ffmpeg+rtsp(三)——延迟巨低的项目+双屏显示

文章目录 前言双屏显示widget.cppwidget.h前言 对于复现情况,分为两种情况 第一种,对于我而言,是直接解压后,就能直接运行了 第二种,对于师兄而言,需要你构建debug后,会产生这个文件夹,执行的时候,地址应该在这,我猜的,这里面没有dll,exe程序就找不到dll这些库,你…

ansible进阶06

复杂的循环结构 循环基础 [studentworktest myansible]$ cat users.yml --- - name: create usershosts: serveratasks:- name: create some usersuser:name: "{{item}}"password: "{{123456|password_hash(sha512)}}"state: presentloop:- zhangsan- li…

Go 模块版本管理

Go 模块版本管理指南 1、创建带注释的 Git 标签 基本命令 # 创建带注释的标签 git tag -a v1.0.0 -m "Release version 1.0.0 - initial stable release" -a&#xff1a;创建带注释的标签 -m&#xff1a;添加标签注释信息 # 推送标签到远程仓库 git push origin v…

Java—— IO流 第一期

什么是IO流 存储和读取数据的解决方案 I&#xff1a;input O&#xff1a;output 流&#xff1a;像水流一样传输数据 IO流的作用 用于读写数据(本地文件&#xff0c;网络) IO流的分类 按照流向分类 输出流&#xff1a;程序 --> 文件 输入流&#xff1a;文件 --> 程序 按照…

物联网安全技术的最新进展与挑战

随着物联网&#xff08;IoT&#xff09;技术的飞速发展&#xff0c;越来越多的设备被连接到互联网&#xff0c;从智能家居设备到工业控制系统&#xff0c;物联网正在深刻改变我们的生活和生产方式。然而&#xff0c;物联网的安全问题也日益凸显&#xff0c;成为制约其发展的关键…

【深度学习基础】损失函数与优化算法详解:从理论到实践

【深度学习基础】损失函数与优化算法详解&#xff1a;从理论到实践 一、引言 1. 损失函数与优化算法在深度学习中的核心作用 在深度学习中&#xff0c;模型训练的本质是通过不断调整参数&#xff0c;使模型输出尽可能接近真实值。这一过程的核心驱动力是损失函数&#xff08;…

mvc-review

review&#xff1a; 1.Servlet生命周期中初始化方法&#xff1a;init(),init(config) public void init(ServletConfig config) throws ServletException { this.config config; this.init(); } 因此&#xff0c;如果我们需要…

YouTube视频字幕转成文章算重复内容吗?

很多创作者误以为「自己说的话不算抄袭」&#xff0c;却不知道YouTube自动生成的字幕早已被搜索引擎存档。 去年就有案例&#xff1a;某美食博主将教程视频字幕转为图文&#xff0c;结果原创度检测仅42%&#xff0c;导致页面权重暴跌。 本文揭秘5个实操技巧&#xff1a;从删除…

R语言数据可视化

R note book 文档–输出html格式文档&#xff0c;plotly不能生成PDF文件 --- title: "R语言数据可视化" output: html_notebook ---在R语言中进行数据可视化是数据分析和呈现的重要环节&#xff0c;R提供了多种强大的绘图系统和工具。以下是常见的数据可视化方法和示…