算法题(18):删除有序数组中的重复项2

审题:

需要原地删除数据让数组中一个数据只能出现最多2次,并返回修改后的数组的数据个数

(不会有空数组情况)

思路:

双指针:我们用left指向下一个需要插入数据的位置,right去遍历数组

left数据的个数小于2时,我们就可以插入数据到left中,若数据与前一个相同则cou++,不同则让cur等于一。

left数据的个数大于等于二则直接访问下一个数据,直到遇到不同的数据

解题:

(1)left为什么从1开始,cou为什么从1开始?

其一,第一个数据是可以直接插入的,所以直接从索引为1的位置开始插入数据,而因我们已经有一个数据默认插入了,所以cur就是初始化为1

其二,若不让left初始化为1,那么在left为0时无法访问left-1位置,会越界

(2)left表示的是待插入数据的位置,所以判断新数据需要和left-1的位置数据去判断

80. 删除有序数组中的重复项 II - 力扣(LeetCode)

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

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

相关文章

什么是变分法(Calculus of Variations)?以及 欧拉-拉格朗日方程(Euler-Lagrange Equation)具体推导:中英双语

中文版 什么是变分法(Calculus of Variations)? 变分法(Calculus of Variations)是一种数学方法,用于求解在某种条件下,使某个函数达到极值(最大值或最小值)的变量。变…

IPv6 基础协议-NDP

IPv6 基础协议报文 何为基础协议?像v4中的icmp、arp、hdcp之类的 在v6中只需要NDP协议,他是通过ICMPv6报文完成的,她能够实现邻居发现、无状态地址检测、重复地址检测、PMTU等功能 RS(133)RA(134&#x…

MySQL外键类型与应用场景总结:优缺点一目了然

前言: MySQL的外键简介:在 MySQL 中,外键 (Foreign Key) 用于建立和强制表之间的关联,确保数据的一致性和完整性。外键的作用主要是限制和维护引用完整性 (Referential Integrity)。 主要体现在引用操作发生变化时的处理方式&…

MONI后台管理系统-敏感信息脱敏传输

本文章纯转载,如有侵权联系删除 SpringBoot如何优雅地实现返回数据脱敏 前言:数据脱敏是一种常见的数据安全保护技术,可以在保护数据隐私的同时,保持数据的有效性和可用性。在 Spring Boot 中,我们可以使用注解的方式实…

分布式事务入门 一

分布式事务入门 一 您好,我是今夜写代码,今天学习下分布式事务相关理论,以及常见的解决方案,为后续掌握Seata分布式事务框奠定基础。 为什么需要分布式事务? 分布式事务主要由于存储资源的分布性,通常涉及多个数据库。 分布式…

Goland:专为Go语言设计的高效IDE

本文还有配套的精品资源,点击获取 简介:Goland是JetBrains公司开发的集成开发环境(IDE),专为Go语言设计,提供了高效的代码编辑、强大的调试工具和丰富的项目管理功能。其智能代码补全、强大的调试与测试支…

uniapp 前端解决精度丢失的问题 (后端返回分布式id)

原因: 后端使用分布式id, id为19位数,导致精度丢失 ,前端解决方法 这个是通过浏览器请求回来的数据,这个时候id 数据已经丢失了,在数据库查询不到,在调获详情接口的时候会有问题 实际的: 解决…

Pandas07

Pandas01 Pandas02 Pandas03 Pandas04 Pandas05 Pandas06 文章目录 1 用户偏好分析 TGI1.1 TGI介绍1.2 TGI案例代码 2 用户评论文本分析2.1 用户评论文本分析简介 1 用户偏好分析 TGI 1.1 TGI介绍 TGI(Target Group Index,目标群体指数)用于…

spring cloud微服务-OpenFeign的使用

OpenFeign的使用 openFeign的作用是服务间的远程调用 ,比如通过OpenFeign可以实现调用远程服务。 已经有了LoadBalancer为什么还要用openFeign? 在微服务架构中,LoadBalancer和OpenFeign虽然都提供了服务间调用的能力,但它们的设计目的和…

使用PHP函数 “setcookie“ 设置cookie

在网站开发中,cookie是一种非常常用的技术,它用于在用户的浏览器中存储少量的数据,以便在不同页面之间传递信息。PHP提供了一个名为 "setcookie" 的函数,用于设置cookie的值和属性。在本文中,我们将学习如何…

读书笔记-《乡下人的悲歌》

前段时间看了一些 J.D. Vance 的采访视频,几乎都是记者带着刁难的问题先手进攻,而 Vance 面带微笑,提及对方的名字,条理清晰地从对方的攻击中切回主题形成后手反制,实在让人看得过瘾。 更不可思议的是,Van…

Datawhale-AI冬令营二期

目录 一、番茄时钟(1)输入Prompt(2)创建 HTML 文件解析1:HTML结构解析2:计时器内容解析3:按钮区域解析4:脚本引用 (3)使用JavaScript实现时钟功能解析1&#…

【Sentinel】流控效果与热点参数限流

目录 1.流控效果 1.1.warm up 2.2.排队等待 1.3.总结 2.热点参数限流 2.1.全局参数限流 2.2.热点参数限流 2.3.案例 1.流控效果 在流控的高级选项中,还有一个流控效果选项: 流控效果是指请求达到流控阈值时应该采取的措施,包括三种&…

我的Qt作品(20)使用Qt+OpenCV写一个旋转/抠图/mask生成工具

使用QtOpenCV写一个旋转/抠图/mask生成工具 1、旋转功能 void FormRotate::rotateImage(const cv::Mat &src, cv::Mat &dst, double degree) //旋转 {if (fabs(degree) < 0.001){dst src;return;}//center旋转的中心点坐标//degree旋转的角度,不是弧度,>0逆时针…

win11中win加方向键失效的原因

1、可能是你把win键锁了&#xff1a; 解决办法&#xff1a;先按Fn键&#xff0c;再按win键 2、可能是可能是 贴靠窗口设置 中将贴靠窗口关闭了&#xff0c;只需要将其打开就好了

MetaRename for Mac,适用于 Mac 的文件批量重命名工具

在处理大量文件时&#xff0c;为每个文件手动重命名既耗时又容易出错。对于摄影师、设计师、开发人员等需要频繁处理和整理文件的专业人士来说&#xff0c;找到一款能够简化这一过程的工具是至关重要的。MetaRename for Mac 就是这样一款旨在提高工作效率的应用程序&#xff0c…

JavaScript甘特图 dhtmlx-gantt

背景 需求是在后台中&#xff0c;需要用甘特图去展示管理任务相关视图&#xff0c;并且不用依赖vue&#xff0c;兼容JavaScript原生开发。最终使用dhtmlx-gantt&#xff0c;一个半开源的库&#xff0c;基础功能免费&#xff0c;更多功能付费。 甘特图需求如图&#xff1a; 调…

VSCode下载安装指南

VSCode下载 通过网盘分享的文件&#xff1a;VSCodeUserSetup-x64-1.96.2.exe 链接: https://pan.baidu.com/s/1l7fdxeALnyeuUe1a5l0aqQ?pwdb8y3 提取码: b8y3 –来自百度网盘超级会员v6的分享 VSCode安装 1、下载好之后双击下图 2、我同意&#xff0c;下一步 3、可以点浏…

多显卡服务器如何设置使用集成显卡输出信号?

要在IPMI中设置服务器的显示接口只使用集成显卡&#xff0c;而不使用插入的PCI显卡&#xff0c;您需要进入服务器的BIOS设置进行相应的配置。以下是一般步骤&#xff1a; • 重启服务器&#xff0c;在启动时按下相应的键&#xff08;通常是Del或F2&#xff09;进入BIOS设置。 …

【黑马头条】day20—xxl-job

目录 1 今日内容 1.1 需求分析 1.2 实现思路 1.3 定时计算 1.4 定时任务框架-xxljob 1.5 学习目录 2.分布式任务调度 2.1 什么是分布式任务调度 2.2 xxl-Job简介 2.3 XXL-Job-环境搭建 2.4 配置部署调度中心-docker安装 2.5 xxl-job入门案例编写 2.6 任务详解-执行…