【leetcode面试经典150题】-80. 删除有序数组中的重复项 II

【leetcode面试经典150题】-80. 删除有序数组中的重复项 II

  • 1 题目介绍
  • 2 个人解题思路
    • 2.1 代码
    • 2.2 思路
  • 3 官方题解


1 题目介绍

在这里插入图片描述
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。

不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

2 个人解题思路

2.1 代码

class Solution {public int removeDuplicates(int[] nums) {int length=nums.length; int cur=0;int index=nums[cur];for(int right=1;right<length;right++){int freq=1;while(index==nums[right]){if(freq<2){freq++;cur++;nums[cur]=nums[right];}right++;if(right>=length){return cur+1;}}cur++;nums[cur]=nums[right];index=nums[right];     }return cur+1;}  
}  

2.2 思路

每次比对index和right。一样交换跳过,用freq记录有多少个相同,<2时cur和right同时++,>=2时只有right++

3 官方题解

class Solution {public int removeDuplicates(int[] nums) {int n = nums.length;if (n <= 2) {return n;}int slow = 2, fast = 2;while (fast < n) {if (nums[slow - 2] != nums[fast]) {nums[slow] = nums[fast];++slow;}++fast;}return slow;}
}

初始slow和fast相同位置第三个元素,对比slow的前两个元素即第0号元素,如果fast于0相同,则fast移动,如果直到移至不同地方,slow移动,这样保证只有两个相同元素。slow指向真实数组的下标。

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

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

相关文章

d20(184-190)-勇敢开始Java,咖啡拯救人生

目录 网络通信 网络通信三要素&#xff08;IP地址&#xff0c;端口号&#xff0c;协议 IP地址 InetAddress 端口号 协议 传输层的两个通信协议 UDP通信 java.net.Datagramsocket类 客户端 服务端 UDP通信多收多发 客户端 服务端 TCP通信 java.net.Socket类 客…

【全网最全】2024电工杯数学建模A题21页初步参考论文+py代码+保奖思路等(后续会更新)

您的点赞收藏是我继续更新的最大动力&#xff01; 一定要点击如下的卡片链接&#xff0c;那是获取资料的入口&#xff01; 【全网最全】2024电工杯数学建模A题21页初步参考论文py代码保奖思路等&#xff08;后续会更新成品论文&#xff09;「首先来看看目前已有的资料&#x…

企业应考虑的优秀云安全措施

作为云客户&#xff0c;企业有责任确保正确使用他们提供的工具来保证数据和应用程序的安全。让德迅云安全来跟大家一起研究一些典型企业应该考虑的优秀云安全措施。 在数据安全和隐私方面&#xff0c;企业是否在努力跟上疫情的发展?企业不是一个人。就像多年以前&#xff0c;C…

【栈】Leetcode 224. 基本计算器【困难】

基本计算器 给你一个字符串表达式 s &#xff0c;请你实现一个基本计算器来计算并返回它的值。 **注意:**不允许使用任何将字符串作为数学表达式计算的内置函数&#xff0c;比如 eval() 。 示例 1&#xff1a; 输入&#xff1a;s “1 1” 输出&#xff1a;2 示例 2&…

解决小皮面版搭建php网站数据库连接不了

首先进入mysql bin目录下 并执行cmd mysql -u root -pCREATE USER userlocalhost IDENTIFIED BY pass;GRANT ALL PRIVILEGES ON *.* TO userlocalhost;GRANT SELECT, INSERT, UPDATE ON database_name.* TO xxwlocalhost;FLUSH PRIVILEGES;select host ,user from mysql.user…

Android 自定义Adapter关键函数getView性能最优使用

文章目录 1、自定义Adapter关键函数getView()标准写法2、布局文件list_item_user.xml3、解释3、示例使用4、结果5、进一步优化和扩展5.1. **优化性能&#xff1a;ViewHolder模式**5.2. **处理多种类型的视图**5.3. **使用RecyclerView.Adapter** 6、RecyclerView使用示例7、结果…

DOS学习-目录与文件应用操作经典案例-del

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一.前言 二.使用 三.案例 一.前言 DOS系统的del命令是一个用于删除文件的命令行工具。以下…

使用公共Wi-Fi所面临的风险有哪些

尽量不要使用公共wifi做转账、支付、修改密码等金融性或私密性的操作。公共Wi-Fi网络存在许多风险。尽管商家可能认为他们为顾客提供了一个有价值的服务&#xff0c;很多人也认为在星巴克噼里啪啦的乱敲键盘非常小资&#xff0c;但其实这些网络的安全性可能存在极大的漏洞&…

【sass插值语句 #{}简介以及使用方法】

Sass 中的插值&#xff08;Interpolation&#xff09;是一种强大的特性&#xff0c;它允许你在 Sass 代码中嵌入变量、选择器、属性名或任何其他 Sass 表达式&#xff0c;并动态地生成 CSS 代码。插值通过 #{} 语法来实现。 Sass 插值简介 Sass 插值允许你创建可动态生成内容…

安卓12aosp mtp屏蔽内部存储显示,只展示特定文件夹和文件类型

系统&#xff1a;安卓12 屏蔽sd卡/内存存储显示 packages/services/Mtp/src/com/android/mtp/MtpService.java 修改如下&#xff0c;屏蔽了内部存储&#xff0c;如果需要屏蔽sd卡也可以根据这里做修改&#xff1a; private void addStorage(StorageVolume volume) {Log.v(TAG,…

[GStreamer] gst_element_link 及 pad 在继承体系中如何存在

前言&#xff1a; pad 是每个 element实例 都有的&#xff0c;是 elemenet 之间沟通的代理人&#xff0c;没有 pad 的 element 没法于其他element交流。 考虑到gstreamer存在继承体系&#xff0c;那么如果继承类element不在init函数里创建pad&#xff0c;那么在gst_element_l…

51打开工程,发现cannot read project file问题

解决办法&#xff1a; 1、路径太长&#xff0c;可以在桌面重新创建一个文件夹&#xff0c;把所有的文件都移动到新的文件夹中 2、创建工程的时候&#xff0c;都勾选上&#xff0c;就没问题

OracleDG原理

一、DataGuard架构介绍 1、基本介绍 在DG环境中&#xff0c;至少会有两个数据库&#xff0c;一个数据库处于Open状态&#xff0c;对外提供服务&#xff0c;这个数据库叫做primary Database。第二个数据库处于恢复状态&#xff0c;叫做Standby Database。运行时Primay Databas…

vue从入门到精通(四):MVVM模型

一,MVVM MVVM&#xff08;Model–view–viewmodel&#xff09;是一种软件架构模式。MVVM有助于将图形用户界面的开发与业务逻辑或后端逻辑&#xff08;数据模型&#xff09;的开发分离开来。详见MVVM 二,Vue中的MVVM Vue虽然没有完全遵循 MVVM 模型&#xff0c;但是 Vue 的设…

手机相册怎么恢复?如何挽救误删的照片?

手机相册成为我们存储和分享照片的主要途径&#xff0c;这些照片可能代表着我们的美好回忆、重要时刻或珍贵的瞬间。然而&#xff0c;有时候我们会因为误操作或一时冲动&#xff0c;将一些珍贵的照片误删&#xff0c;并且很难找回来。手机相册怎么恢复呢&#xff1f;本文将为你…

基于Tensorflow+Keras的卷积神经网络(CNN)人脸识别

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 人脸识别是计算机视觉领域的一个重要研究方向&#xff0c;广泛应用于安全监控、身份验证、人机…

Android 性能为王时代SparseArray和HashMap一争高下

文章目录 一、SparseArray 源码分析1. **类定义和构造函数**2. **基本方法**2.1 put(int key, E value)2.2 get(int key)2.3 delete(int key)2.4 removeAt(int index)2.5 gc()2.6 size()2.7 keyAt(int index) 和 valueAt(int index) 3. **辅助方法**3.1 binarySearch() 二、使用…

最新AI智能问答创作系统ChatGPT网站源码V4.20版本,GPTs、AI绘画、AI换脸、垫图混图+(GoMaxAI系统搭建部署教程文档)

Midjourney&#xff08;人工智能图像生成器&#xff09;&#xff0c;仅用了一年时间就已经火爆全球。它就像是一个想象力的助力器&#xff0c;总能带给人们一些不可思议的奇妙的作品。Midjourney虽然是一款最强的AI绘画工具&#xff0c;但对于很多人来说Midjourney怎么用&#…

使用JavaScript日历小部件和DHTMLX Gantt的应用场景(三)

DHTMLX Suite UI 组件库允许您更快地构建跨平台、跨浏览器 Web 和移动应用程序。它包括一组丰富的即用式 HTML5 组件&#xff0c;这些组件可以轻松组合到单个应用程序界面中。 DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表&#xff0c;可满足项目管理应用…

匝间冲击耐压试验仪产品介绍及工作原理

产品简介 武汉凯迪正大KD2684S匝间冲击耐压试验仪适用于电机、变压器、电器线圈等这些由漆包线绕制的产品。因漆包线的绝缘涂敷层本身存在着质量问题&#xff0c;以及在绕线、嵌线、刮线、接头端部整形、绝缘浸漆、装配等工序工艺中不慎而引起绝缘层的损伤等&#xff0c;都会造…