java数据结构与算法刷题-----LeetCode485. 最大连续 1 的个数

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846

文章目录

    • 1. 法一,双指针
    • 2. 法二:变量计数

在这里插入图片描述

1. 法一,双指针

  1. 首先用left指针,定位到一个含有1的子区间左边界,然后让right从left位置尝试找到这个子区间的右边界
  2. 如果已经完成了一个子区间的统计,数组还没有遍历完,让left从right的位置,继续。
  3. 类似一个滑动窗格
代码:时间复杂度O(n).空间复杂度O(1)

在这里插入图片描述

class Solution {public int findMaxConsecutiveOnes(int[] nums) {int left=0,right = 0;//双指针int n = nums.length;//数组长度int ans = 0;//保存结果for(left = 0;left<n;left++){//左指针先遍历if(nums[left]==1){//如果左指针找到1for(right = left;right<n&&nums[right]==1;right++);//右指针从左指针位置找第一个不是1的,或者无元素可遍历ans = Math.max(right-left,ans);//保存本次左右指针所指区间长度和已经保存的区间长度,大的那个left = right;//左指针从右指针的位置继续}}return ans;//返回结果}
}

2. 法二:变量计数

和双指针类似,当我们发现一个1后,用count变量开始统计个数。如果一个区间统计完成后,数组没有遍历完成,那么记录当前count和已经记录的count谁大,然后count归0重新开始统计下一个区间。

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

在这里插入图片描述

class Solution {public int findMaxConsecutiveOnes(int[] nums) {int ans = 0, count = 0;//ans保存结果,count保存本次区间的1的个数int n = nums.length;//数组长度for(int i = 0;i<n;i++){//依次遍历if(nums[i]==1) count++;//如果发现1,count开始累加else{//如果发现当前元素不是1了,可能区间中断,或者当前本身就不是1的区间ans = Math.max(ans,count);//无论如何,保存已经保存的区间1个数,和当前1的个数,选择大的count = 0;//count重新开始累加}}//如果数组某区间,遍历完成后,没有发现不是1的,上面for循环的ans统计,会少掉末尾区间的//在这里补上ans = Math.max(ans,count);//选择大的return ans;//返回结果}
}

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

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

相关文章

Unity 面试篇|(八)Unity机试篇 【全面总结 | 持续更新】

目录 1.假设当前市场价一只鸡10元&#xff0c;一只鸭12元5角。请写一个函数ShowPrice&#xff0c;输入参数分别为鸡和鸭的个数&#xff08;非负整型&#xff09;&#xff0c;功能为显示出总价钱&#xff0c;精确到分。例如调用ShowPrice&#xff08;5,10&#xff09;后输出175.…

63 C++ 多线程 timed_mutex,recursive_timed_mutex

前提 &#xff1a;以往的mutex如果拿锁子拿不到&#xff0c;就会一直等待。 timed_mutex 和 recursive_timed_mutex则不同&#xff0c;这两个提供了方法&#xff0c;可以不一直等待。 try() 方法--mutex 和 timed_mutex 都有&#xff0c;且说明都一样 bool try_lock();(C11 起)…

vant组件库的简单使用

1. 组件库的选择 组件库并不是唯一的&#xff0c;常用的组件库还有以下几种&#xff1a; pc 端:element-uielement-plus iviewelement-plus iviewant-design移动端&#xff1a;vant-uiMint UI (饿了么)Cube UI (滴滴)… 2. vant组件库 主要参考官网&#xff1a;Vant官网 3…

面对不平衡二元分类问题是否需要使用SMOTE技术?

摘要 在训练分类模型之前平衡数据是解决表格数据中不平衡二元分类任务的流行技术。平衡通常是通过复制少数样本或生成合成少数样本来实现的。虽然众所周知&#xff0c;平衡对每个分类模型的影响不同&#xff0c;但大多数先进的实证研究并未将强大的最先进&#xff08;SOTA&…

python实例100第30例:一个5位数,判断它是不是回文数

题目&#xff1a;一个5位数&#xff0c;判断它是不是回文数。即12321是回文数&#xff0c;个位与万位相同&#xff0c;十位与千位相同。 程序分析&#xff1a;即12321是回文数&#xff0c;个位与万位相同&#xff0c;十位与千位相同。 程序源代码&#xff1a; #!/usr/bin/pyt…

elementbi表格的列合并,注意这是列合并不是行合并

先准备列合并代码 //先准备列合并代码 export function rowMergeHandle(arr, data) {if (!Array.isArray(arr) && !arr.length) return false;if (!Array.isArray(data) && !data.length) return false;let needMerge {};arr.forEach((i, idx) > {needMer…

Qt6入门教程 8:信号和槽机制(连接方式)

目录 一.一个信号与槽连接的例子 二.第五个参数 1.Qt::AutoConnection 2.Qt::DirectConnection 3.Qt::QueuedConnection 4.Qt::BlockingQueuedConnection 5.Qt::UniqueConnection 三.信号 四.connect函数原型 五.信号与槽的多种用法 六.槽的属性 一.一个信号与槽连接…

R语言【cli】——builtin_theme():内置的CLI主题

Package cli version 3.6.0 Description 此主题始终处于活动状态&#xff0c;并且位于主题堆栈的底部。 Usage builtin_theme(dark getOption("cli.theme_dark", "auto")) Argument 参数【dark】&#xff1a;是否使用黑暗主题。cli.theme_dark选项可用…

AIGC时代高效阅读论文实操

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

3d渲染软件有哪些?3d云渲染推荐

目前市面上的3D渲染软件非常多&#xff0c;不同的建模软件都有自己的渲染方式&#xff0c;根据所处行业的不同和项目需要&#xff0c;设计师可以选择不同的软件帮助展示最终效果。 主流的渲染软件有&#xff1a;VRay和Corona&#xff1a;一般用于室内效果图渲染&#xff0c;与3…

go 语言爬虫库goquery介绍

文章目录 爬虫介绍goquery介绍利用NewDocumentFromReader方法获取主页信息Document介绍通过查询获取文章信息css选择器介绍goquery中的选择器获取主页中的文章链接 爬取总结 爬虫介绍 爬虫&#xff0c;又称网页抓取、网络蜘蛛或网络爬虫&#xff0c;是一种自动浏览互联网并从网…

chapter10-让你拥有“火眼金睛”的 Fiddr4 和其他工具

在前面的课程中&#xff0c;我们通过一个简单的天气预报服务&#xff0c;拓展了如何使用邮件、短信&#xff0c;以及部署在服务器上&#xff0c;完整的开发了一款可以正式使用的小程序。但是有的同学可能也会产生抱怨&#xff1a;这门课不是是爬虫入门吗&#xff1f;为什么讲的…

HttpServletRequest HttpEntity StringEntity 区别

HttpEntity&#xff1a; 在 Apache HttpClient 中是一个接口&#xff0c;它代表一个可读或可写的HTTP消息实体&#xff0c;包括请求体和响应体。 在发送HTTP请求时&#xff0c;可以附带各种类型的实体内容&#xff0c;而在接收HTTP响应时&#xff0c;则会从服务器获取相应的实…

如何在Servlet中获取请求参数的值

看看这个大佬做的动图吧&#xff01; 在Servlet中&#xff0c;你可以使用HttpServletRequest对象来获取请求参数的值。HttpServletRequest对象提供了一些方法&#xff0c;允许你访问从客户端发送的请求信息。以下是一些获取请求参数的常用方法&#xff1a; getParameter(String…

node.js项目express的初始化

目录 1.初始化项目2.配置跨域3.开始编写API3.1准备3.2路由处理函数router_make下的user.js3.3路由模块router下的user.js3.4入口文件app.js里面去新增这段代码3.5启动项目进行测试 &#x1f44d; 点赞&#xff0c;你的认可是我创作的动力&#xff01; ⭐️ 收藏&#xff0c;你…

小程序学习-19

Vant Weapp - 轻量、可靠的小程序 UI 组件库 ​​​​​ Vant Weapp - 轻量、可靠的小程序 UI 组件库 安装出现问题&#xff1a;rollbackFailedOptional: verb npm-session 53699a8e64f465b9 解决办法&#xff1a;http://t.csdnimg.cn/rGUbe Vant Weapp - 轻量、可靠的小程序…

Unity中URP下的SimpleLit片元着色器

文章目录 前言一、SimpleLit片元着色器大体框架1、传入 和 返回2、GPU实例化部分3、准备 BlinnPhong 光照模型计算需要的 SurfaceData4、准备 BlinnPhong 光照模型计算需要的 InputData5、进行 BlinnPhong 的计算、雾效颜色混合及透明度计算 二、准备SurfaceData1、SurfaceData…

基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖微信小程序端(十三)

地址簿相关功能 1.1 需求分析和设计1.1.1 产品原型1.1.2 接口设计1.1.3 表设计 1.2 代码实现1.2.1 Mapper层1.2.2 Service层1.2.3 Controller层 1.1 需求分析和设计 1.1.1 产品原型 地址簿&#xff0c;指的是消费者用户的地址信息&#xff0c;用户登录成功后可以维护自己的地…

Salesforce开发者 - 从入门到精深

# 前言 1.1 Salesforce 平台简介 Salesforce 是一种云计算平台&#xff0c;专注于客户关系管理&#xff08;CRM&#xff09;。它提供了一整套工具和服务&#xff0c;用于开发、定制和管理企业应用程序。 1.2 为什么选择 Salesforce 开发 - 快速开发&#xff1a;通过Salesfo…

51单片机中断

1、什么是中断&#xff1f; CPU在处理某一事件A时&#xff0c;发生了另一事件B请求CPU迅速去处理&#xff08;中断发生&#xff09;&#xff1b; CPU暂时中断当前的工作&#xff0c;转去处理事件B&#xff08;中断响应和中断服务&#xff09;&#xff1b; 待CPU将事件B处理完…