【算法|滑动窗口No.4】leetcode 485.最大连续 1 的个数 487.最大连续 1 的个数 II 1004. 最大连续1的个数 III

个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
收录于专栏【手撕算法系列专栏】【LeetCode】
🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望对大家有所帮助
🍓希望我们一起努力、成长,共同进步。
在这里插入图片描述

目录

  • 一、485.最大连续 1 的个数
    • 题目描述
    • 解题代码
  • 二、487.最大连续 1 的个数 II
    • 题目描述
    • 解题代码
  • 三、1004. 最大连续1的个数 III
    • 题目描述
    • 解题代码

一、485.最大连续 1 的个数

原题链接:点击直接跳转到该题目

题目描述

给定一个二进制数组 nums , 计算其中最大连续 1 的个数。

示例1:

输入:nums = [1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.

示例2:

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

提示:

  • 1 <= nums.length <= 1 0 5 10^{5} 105
  • nums[i] 不是 0 就是 1

解题代码

class Solution {
public:int findMaxConsecutiveOnes(vector<int>& nums) {int n = nums.size();int nums_0 = 0,ret = 0;for(int left = 0,right = 0;right < n;right++){if(nums[right] == 0) nums_0++;while(nums_0) {if(nums[left] == 0) nums_0--;left++;}ret = max(ret,right - left + 1); }return ret;}
};

二、487.最大连续 1 的个数 II

原题链接(会员题目):点击直接跳转到该题目

题目描述

在这里插入图片描述

在这里插入图片描述
提示:

  • 1 <= nums.length <= 1 0 5 10^{5} 105
  • nums[i] 不是 0 就是 1

解题代码

class Solution {
public:int findMaxConsecutiveOnes(vector<int>& nums) {int n = nums.size();int nums_0 = 0,ret = 0;for(int left = 0,right = 0;right < n;right++){if(nums[right] == 0) nums_0++;while(nums_0 > 1) {if(nums[left] == 0) nums_0--;left++;}ret = max(ret,right - left + 1); }return ret;}
};

三、1004. 最大连续1的个数 III

原题链接:点击直接跳转到该题目

题目描述

给定一个二进制数组 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。

解题代码

class Solution {
public:int longestOnes(vector<int>& nums, int k) {int n = nums.size();int nums_0 = 0,ret = 0;for(int left = 0,right = 0;right < n;right++){if(nums[right] == 0) nums_0++;while(nums_0 > k) {if(nums[left] == 0) nums_0--;left++;}ret = max(ret,right - left + 1); }return ret;}
};

hh~最后就顺利通过啦!!!

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

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

相关文章

Feign的Retryer接口

Feign的Retryer接口 Feign的Retryer接口是用于重试失败请求的接口。当使用Feign进行远程调用时&#xff0c;可能会出现网络故障或服务器错误等问题导致请求失败。此时&#xff0c;可以通过Retryer接口实现自动重试机制&#xff0c;让请求重新发送&#xff0c;直到成功或达到最…

@Autowired和@Inject注解的区别和使用场景

在Spring框架中&#xff0c;Autowired和Inject注解都是用于依赖注入的常用注解。然而&#xff0c;它们在用法和功能上存在一些区别。本文将详细介绍这两个注解的区别和使用场景&#xff0c;并通过示例代码进行演示。 一、Autowired和Inject的区别 注解来源 Autowired是Sprin…

股票价格预测 | 融合CNN和Transformer以提升股票趋势预测准确度

一 本文摘要 股票价格往往很难预测,因为我们很难准确建模数据点之间的短期和长期时间关系。卷积神经网络(CNN)擅长找出用于建模短期关系的局部模式。然而,由于其有限的观察范围,CNN无法捕捉到长期关系。相比之下,Transformer可以学习全局上下文和长期关系。本文提出了一…

arcgis图上添加发光效果!

看完本文, 你可以不借助外部图片素材, 让你的图纸符号表达出你想要的光! 我们以之前的某个项目图纸为例,来介绍下让符号发光的技术! 第一步—底图整理 准备好栅格影像底图、行政边界的矢量数据,确保“数据合适、位置正确、边界吻合”。 确定好图纸的大小、出图比例、投…

《TCP/IP详解 卷一:协议》第5章的IPv4数据报的IHL字段解释

首先说明一下&#xff0c;这里并不解释整个IPv4数据报各个字段的含义&#xff0c;仅仅针对IHL字段作解释。 我们先看下IPv4数据报格式 对于IHL字段&#xff0c; 《TCP/IP详解 卷一&#xff1a;协议》这么解释&#xff1a; IPv4数据报。头部大小可变&#xff0c;4位的IHL字段…

怎么让小程序排名靠前?小程序搜索排名问题

小程序的排名是十分重要的&#xff0c;因为这会直接影响到用户的点击率&#xff0c;用户在搜索小程序时&#xff0c;会看到搜索引擎的前几条搜索结果&#xff0c;如果您的小程序不在这些位置上&#xff0c;很可能就会被忽略&#xff0c;所以&#xff0c;想要让用户能够看到您的…

工具类(系统名称架构)

import java.util.Locale;/*** 系统名称架构工具类* 可直接引用使用* 例如&#xff1a;* String name OSUtils.OPERATING_SYSTEM_NAME.name()* String arch OSUtils.OPERATING_SYSTEM_ARCH*/ public class OSUtils {/*** 系统名称*/private final static PlatformEnum OPERAT…

JAVA同城货运搬家系统的运营方案

随着社会经济的发展和人民生活水平的提高&#xff0c;同城货运搬家市场日益繁荣。为了满足消费者对搬家服务的高效、便捷和安全的需求&#xff0c;本文将介绍一种基于JAVA编程语言的同城货运搬家系统&#xff0c;并阐述其运营方案。 一、市场分析 同城货运搬家市场具有广阔的…

1.Python3-介绍

题记 python3介绍 查看python版本 python -V 或 python --version 进入交互式编程模式 在控制台输入&#xff1a; python Hello World 输出Hello World&#xff1a; print("Hello, World!")执行脚本文件 python3 文件名.py 后记 觉得有用可以点赞或收藏&#xf…

springboot苍穹外卖实战:六、redis(Spring Data Redis)

Spring Data Redis 简介 网址&#xff1a;https://spring.io/projects/spring-data-redis Spring Data Redis中提供了一个高度封装的类&#xff1a;RedisTemplate&#xff0c;对相关api进行了归类封装,将同一类型操作封装为operation接口&#xff0c;具体分类如下&#xff1…

设置博客域名跳转实现方案(免费版)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码&#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&…

《低代码指南》——维格云机器人常见报错怎么解决?

在使用维格机器人调用维格表的API过程中,可能会出现机器人执行结果未达到预期的情况,此时可能是机器人运行出现了问题;通过点击这个机器人右上角的“运行历史”可以查看运行记录,通过对运行记录的分析,可以推断出问题所在,然后进行修改。 而对于运行历史的分析,主要是针…

S/4 HANA 中的 Email Template

1 如何创建Email Template? 没有特定的事务用于创建电子邮件模板,我们可以将其创建为 SE80 事务中的存储库对象,如下所示: 1,选择包(或本地对象)并右键单击。 2,选择“创建”->“更多”->“电子邮件模板” 尽管如此,对于已有的Email Template,可以使用程序…

[ThinkPHP]源码阅读:Model的获取器

目录 1、ThinkPHP组件版本 2、业务Model代码 3、阅读框架源码 4、跳过获取器获取原始数据写法 1、ThinkPHP组件版本 topthink/think-orm v2.0.58 topthink/think-helper v3.1.6 2、业务Model代码 原理&#xff1a;Model通过调用toArray方法使用自定义的获取器 3、阅读框架…

【ELFK】之Filebeat

一、Filebeat介绍 1、Filebeat是什么&#xff1f; Filebeat适用于转发和集中数据的轻量级传送工具&#xff0c;Filebeat监视了指定的日志文件或位置&#xff0c;收集日志事件&#xff0c;并将他们转发到Elasticsearch或Logstash进行索引。 **Filebeat的工作方式&#xff1a;*…

uniapp 使用 UDP

一、搭建UDP服务端&#xff0c;nodejs const dgram require("dgram");const message Buffer.from("你好&#xff0c;这是一个UDP广播消息"); const port 3000; // 用你想要的端口替换这里// 创建一个UDP套接字 const socket dgram.createSocket("…

MySQL分布式架构设计与实现

随着互联网的快速发展&#xff0c;数据量呈现爆炸式增长的趋势。传统的单机数据库已经无法满足大规模数据处理的需求&#xff0c;因此分布式数据库成为了一种重要的解决方案。本文将介绍MySQL分布式架构的设计与实现&#xff0c;包括数据分片、负载均衡和故障恢复等方面的内容&…

分布式ID系统设计(2)

接上文 https://editor.csdn.net/md/?articleId=133988963 类snowFlake 方案 应用举例 mongoDB ObjectID 就是一个典型的实现。数据库生成 以MySQL举例 利用给字段设置AUTO-INCREMENT来保证ID自增,每次业务使用SQL拿到MySQL的ID 这种方案的优缺点: 优点 1 简单。利用数据库实…

【设计模式】第22节:行为型模式之“状态模式”

一、简介 状态模式一般用来实现状态机&#xff0c;而状态机常用在游戏、工作流引擎等系统开发中。不过&#xff0c;状态机的实现方式有多种&#xff0c;除了状态模式&#xff0c;比较常用的还有分支逻辑法和查表法。该模式允许对象内部状态改变使改变它的行为。 二、适用场景…

Linux RPM包离线安装mysql数据库

MySQL 推荐使用 RPM 包进行 Linux 平台下的安装&#xff0c;因为 RPM 包的安装和卸载都很方便&#xff0c;通过简单的命令就可以实现。本节主要介绍 Linux 下如何使用 RPM 包安装和配置 MySQL。本节的安装环境为 CentOS 6.5&#xff0c;选用 el6 的安装包。读者应根据自己的系统…