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

算法训练营第十一天| 80.删除有序数组中的重复项||

题意: 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

题目链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array-ii/

视频链接:https://www.bilibili.com/video/BV18G5UzzE8c/

解题思路:

因为数组是有序的,所以相同元素必然是连续的。我们用双指针法:

- i :慢指针,指向已处理好的、满足条件的数组末尾 ​

- j :快指针,遍历整个数组 ​

- 规则:当 nums[j] 与 nums[i-2] 不同时,说明当前元素还可以保留(最多两次),就把它放到 nums[i] 的位置,并让 i++

代码实现示例
int removeDuplicates(int* nums, int numsSize) { // 数组长度小于等于2时,直接返回原长度 if (numsSize <= 2) { return numsSize; } // i指向已处理部分的下一个位置 int i = 2; for (int j = 2; j < numsSize; j++) { // 当nums[j]和nums[i-2]不同时,说明还可以保留 if (nums[j] != nums[i - 2]) { nums[i] = nums[j]; i++; } } return i; }
http://www.jsqmd.com/news/694825/

相关文章:

  • WeChatMsg终极指南:3步永久保存微信聊天记录,让AI记住你的珍贵回忆
  • ESP32接HC-SR04超声波模块,5V Echo信号怎么安全处理?一个电阻分压电路搞定
  • 新手避坑指南:从下载到验证,图文详解JDK1.8和JDK17环境变量配置全流程
  • 机器学习指标解析:AUC与KS值
  • 2026年户外拓展训练正规AI搜索优化服务商选型指南与实力分析 - 商业小白条
  • 从‘彩虹’到‘拖影’:给网络工程师讲明白光纤色散与高速网络故障排查
  • 保姆级教程:手把手教你用AST解混淆+日志插桩搞定某红书X-s签名(附完整代码)
  • TensorBoard可视化进阶:一条命令同时对比YOLOv6等模型的训练曲线(附避坑指南)
  • N_m3u8DL-RE:如何高效下载加密流媒体内容
  • 20260424紫题训练 - Link
  • LinkSwift:八大主流网盘直链下载解决方案的技术实践指南
  • 【ZYNQ进阶】AXI HP口实战:从时序解析到高效DMA引擎设计
  • 智慧树刷课插件终极指南:5分钟实现视频自动化学习
  • P3732 [HAOI2017] 供给侧改革 - Link
  • 2026年4月维普降AI全量横评:嘎嘎降AI和率零领先
  • 企业安全自查手册:利用开源工具V2.0对你的泛微、用友、致远OA做一次深度漏洞扫描
  • 2026年B端行业GEO优化服务商市场研究:推荐3家具备成熟服务能力的专业服务商 - 商业小白条
  • Day07-MySQL
  • 计算机毕业设计:Python量化交易管理平台 Django框架 requests爬虫 数据分析 可视化 大数据 大模型(建议收藏)✅
  • 细粒度并行计算架构Squire的设计与优化实践
  • AI数学基础:线性代数、概率论与微积分实战解析
  • Nucleus Co-Op技术解密:单机游戏分屏多人的创新突破与完整实现指南
  • 别再死记硬背SVPWM公式了!用STM32的定时器PWM模式2,手把手教你从Simulink仿真到代码落地
  • 3步轻松配置TTS-Vue桌面语音合成工具完整指南
  • 创建 ext4/xfs 文件系统供容器挂载
  • 别只拿JTAG下载程序了!手把手教你用边界扫描给电路板做‘体检’
  • 别再混淆了!一张图讲清EsKF、IEKF和EsIKF在VIO/SLAM中的区别与联系
  • 如何快速获取Hadoop Windows工具包:winutils完整指南 [特殊字符]
  • 题解:AtCoder AT_awc0003_b Line of Handshakes
  • STM32 DAC输出波形实战避坑:为什么你的正弦波有毛刺?如何优化三角波线性度?