当前位置: 首页 > news >正文

80、删除有序数组中的重复项Ⅱ

题目

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

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

解题思路

快慢指针法:快指针指向需要比较的元素,慢指针指向已保存的最后一个元素。由于可以重复出现两次,所以快指针需要与慢指针的前一个位置进行比较。
时间复杂度:O(n),空间复杂度:O(1)

代码

class Solution {// 思路:快慢指针法public int removeDuplicates(int[] nums) {if(nums == null){return 0;}if(nums.length == 1){return 1;}if(nums.length == 2){return 2;}// 1. 定义慢指针用于定位保存的最后一个元素位置,由于可重复两次int slowIndex = 1;// 2. 定义快指针,指向需要比较的元素位置for(int fastIndex = 2; fastIndex < nums.length; fastIndex++){// 3. 如果快指针指向的元素不等于慢指针位置之前的一位,说明重复元素少于两个if(nums[fastIndex] != nums[slowIndex - 1]){nums[++slowIndex] = nums[fastIndex];}}return slowIndex +1;}
}
http://www.xdnf.cn/news/327637.html

相关文章:

  • keil5 sprintf接口无法使用
  • 51单片机快速成长路径
  • SpringBoot记录用户操作日志
  • 紫光同创FPGA实现HSSTHP光口视频传输+图像缩放,基于Aurora 8b/10b编解码架构,提供3套PDS工程源码和技术支持
  • windows使用bat脚本激活conda环境
  • TI Code Composer Studio编译时SDK报错问题解决
  • 鸿蒙NEXT开发动画案例3
  • 写程序,统计两会政府工作报告热词频率,并生成词云
  • 2025-05-07 Unity 网络基础7——TCP异步通信
  • 卷积神经网络基础(六)
  • Python 运维脚本
  • AI系列:智能音箱技术简析
  • void*在c语言中什么意思(非常详细)
  • scanpy处理:使用自定义 python 函数读取百迈客空间转录组数据(百创智造S1000)
  • 深度学习:智能车牌识别系统(python)
  • htop筛选进程时,出现重复进程
  • 德州仪器技术干货 | 48V 集成式热插拔电子保险丝:为现代 AI 数据中心高效供电
  • Python案例实战《水果识别模型训练及调用》
  • Linux 内核学习(7) --- 字符设备驱动
  • eFish-SBC-RK3576工控板CAN接口测试操作指南
  • leetcode 3341. 到达最后一个房间的最少时间 I 中等
  • Unity_JK框架【3】 事件系统的简单使用示例
  • 169.多数元素
  • openstack虚拟机状态异常处理
  • java集合菜鸟教程
  • 从 CodeBuddy Craft 到 edgeone-pages-mcp 上线算命网站的一次完整体验分享
  • 多语言网站的 UX 陷阱与国际化实践陷阱清单
  • 前端面试每日三题 - Day 27
  • 【Python】os模块
  • 使用 Gradio + Qwen3 + vLLM 部署 Text2SQL 多表查询系统