news 2026/4/24 1:16:19

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
算法训练营第十一天|80. 删除有序数组中的重复项 II

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

不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
题目链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array-ii/
视频链接:https://www.bilibili.com/video/BV18G5UzzE8c/

一 我的思路

这题是上一题的升级版。
上一题是每个数字只留 1 个,这题是每个数字最多留 2 个。
思路还是双指针:
慢指针:记录新数组该放哪里
快指针:遍历整个数组
只要当前数字 和 慢指针前面第二个数字不一样,就保留

二 代码的实现

class Solution { public: int removeDuplicates(vector<int>& nums) { if (nums.size() <= 2) return nums.size(); int slow = 2; for (int fast = 2; fast < nums.size(); fast++) { if (nums[fast] != nums[slow - 2]) { nums[slow] = nums[fast]; slow++; } } return slow; } };

三 我遇到的困难

1 一开始还是想删元素,结果越写越乱
2 不知道要从下标 2 开始判断
3 搞不懂为什么要和 slow-2 比较
4 边界条件经常忘,比如数组长度小于 2 的情况
5 指针顺序搞反,调试好几次才过

四 学习总结

这道题是有序数组去重的进阶版,跟着双指针思路走
核心:
每个数字最多留两个,只要快指针的数,不和慢指针前面第二个数重复,就留下来。
比起上一题只留一个,这题只是多了一步判断,逻辑几乎一样。
学会这道题,我对双指针的用法更熟悉了,也更敢做数组题了
虽然还是会踩坑,但至少能独立写出来,真的很有成就感~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 1:15:19

深度学习在时间序列预测中的应用与实践

1. 时间序列预测与深度学习的结合之道时间序列预测一直是数据分析领域最具挑战性的任务之一。从股票价格到气象数据&#xff0c;从设备传感器到用户行为日志&#xff0c;时间序列数据无处不在。传统统计方法如ARIMA虽然在某些场景下表现良好&#xff0c;但在处理复杂非线性模式…

作者头像 李华
网站建设 2026/4/24 1:14:21

从电动车到充电器:拆解IGBT与MOSFET在新能源设备里的真实工作状态

从电动车到充电器&#xff1a;拆解IGBT与MOSFET在新能源设备里的真实工作状态 新能源浪潮下&#xff0c;功率半导体器件如同电动车的"神经末梢"&#xff0c;默默承担着能量转换的核心使命。当驾驶者踩下特斯拉Model 3的加速踏板时&#xff0c;IGBT模块正在以每秒上万…

作者头像 李华
网站建设 2026/4/24 1:11:17

旗舰游戏本新悍将 荣耀WIN游戏本 H9靠什么赢?

多屏协同 当前&#xff0c;游戏笔记本市场竞争日趋激烈&#xff0c;硬核性能、稳定散热、智能体验已经成为高端机型的核心分水岭。今天我们带来的荣耀WIN游戏本H9&#xff0c;凭借酷睿Ultra9290HXPlus处理器、RTX5070Ti显卡与270W满血释放的组合&#xff0c;再加上专…

作者头像 李华
网站建设 2026/4/24 1:09:20

依赖更新自动化:安全漏洞的自动修复与升级

依赖更新自动化&#xff1a;安全漏洞的自动修复与升级 在当今快速发展的软件开发领域&#xff0c;依赖库的安全漏洞已成为企业面临的重要挑战之一。手动更新依赖不仅效率低下&#xff0c;还容易遗漏关键补丁&#xff0c;导致系统暴露在风险中。依赖更新自动化技术应运而生&…

作者头像 李华