【滑动窗口】487. 最大连续1的个数 II

news/2024/11/24 13:46:01/

文章目录

  • 一、题目
    • 1、题目描述
    • 2、基础框架
    • 3、原题链接
  • 二、解题报告
    • 1、思路分析
    • 2、时间复杂度
    • 3、代码详解
  • 三、本题小知识

一、题目

1、题目描述

给定一个二进制数组 nums ,如果最多可以翻转一个 0 ,则返回数组中连续 1 的最大个数。

示例 1:
输入:nums = [1,0,1,1,0]
输出:4
解释:翻转第一个 0 可以得到最长的连续 1。
当翻转以后,最大连续 1 的个数为 4。

示例 2:
输入:nums = [1,0,1,1,0,1]
输出:4

2、基础框架

  • C++版本给出的基础框架如下:

3、原题链接

https://leetcode.cn/problems/max-consecutive-ones-ii/

二、解题报告

1、思路分析

   ( 1 ) (1) (1)滑动窗口,右指针滑动遇到0时,计算如果当前右指针位置的0变成1,那么会最长连续1的长度是多少,即继续遍历直到遇到下一个0或者到达数组末尾。注意,这时候要用一个临时指针遍历,因为还要计算不改变0的长度。
   ( 2 ) (2) (2)如果不改变当前0,则更新左指针到当前位置+1。

2、时间复杂度

3、代码详解

class Solution {
public:int findMaxConsecutiveOnes(vector<int>& nums) {int l = 0;int r = 0;int m = 0;while (r < nums.size()) {if (nums[r] == 0) {int t = r;m = max(m, t - l + 1);while (t + 1 < nums.size() && nums[t+1] == 1) {t++;m = max(m, t - l + 1);}if (t == nums.size()) {break;}l = r + 1;r++;} else {r++;m = max(m, r - l);}}return m;}
};

三、本题小知识


http://www.ppmy.cn/news/248561.html

相关文章

测试人何去何从?2023年测试工程师突破自我,卷出测试圈...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 2023年测试行业现…

springboot启动源码分析

概述 springboot启动类 package com.ahs.ahsaccount;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplication public class AhsAccountApplication {public static void main(Stri…

计算机无法启动硬盘损坏,电脑硬盘坏了 它显示出 系统资源不够 没法启动

故障现象&#xff1a;电脑在开机的时候(登录桌面之前)&#xff0c;提示“系统资源不够&#xff0c;无法完成API”点击“确定”后&#xff0c;电脑自动重起。甚至连“安全模式”/“最后一次正确配置”也无法进入。故障原因&#xff1a;C盘的剩余空间过小。lsass.exe 系统错误---…

grub4dos初级教程

grub4dos初级教程 - GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 - 中国DOS联盟论坛 - 中国DOS联盟之联合DOS论坛 http://cndos.fam.cx/forum/viewthread.php?tid28300&fpage1 目录 1 grub4dos初级教程&#xff0d;入门篇 1.1 grub简介 1.2 如何获得grub4dos最新版…

简短的计算机病毒,最简单的电脑病毒

大家知道最简单的电脑病毒是什么吗?下面就让学习啦小编教大家做一个最简单的电脑病毒吧。 最简单的电脑病毒的做法 1.控制面板->文件资源管理器选项->查看->隐藏已知文件夹类型的扩展名,如果前面勾选了就取消勾选,没有勾选就不用管。 2.新建一个文本文档,重命名为…

计算机系统的优化具体操作,从八个方面来探讨计算机操作系统的优化

内容简介:本文主要从硬盘引导、操作系统引导、载入基本操作系统、定义临时目录、定义虚拟内存盘、载入系统服务、载入自定义服务、定义GUI这八个方面来说明针对操作系统的优化。 不管您使用的是Windows也好,Linux也好,或者是Freebsd(为避免语言烦琐,以下如同时指代Linux和F…

计算机慢怎么解决6,电脑运行速度慢怎么回事 电脑运行速度慢的解决方法

通常而言&#xff0c;便携式电脑的打开速度要比台式电脑的打开速度要快上很多。那么台式电脑运行速度慢&#xff0c;一定是因为它出现了小小的问题了。一种是&#xff0c;我们的电脑体内有非常多的灰尘&#xff0c;没有被我们按时清理哦。还有最大的难题&#xff0c;那便是电脑…

专业英语(一) · NIIT教材中文总结系列①

专业英语(一) —— English for Excellence-Primer 文章号&#xff1a;[2023]001 第一章 破冰(交际交流)(Ice-break) 1.1. 介绍和短对话 打招呼 : 正 式: Morning; How do you do; 非正式: Hey,man; Hows it going; 与陌生人对话: 1. 礼貌(Always be polite); 2. 不辱骂他人(Do…