news 2026/4/24 6:05:25

【算法刷题日记LeetCode 80 删除有序数组中的重复项 II|快慢指针通用解法 C 语言

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【算法刷题日记LeetCode 80 删除有序数组中的重复项 II|快慢指针通用解法 C 语言

刷题日期:2026.4.23

题目:80. 删除有序数组中的重复项 II难度:中等语言:C 语言

参考文章:https://blog.csdn.net/weifeng425/article/details/132176731

参考视频:https://www.bilibili.com/video/BV18G5UzzE8c/


一、看到题目的第一想法

题目要求:有序数组原地去重,最多保留 2 个重复项。看到有序、原地、去重 →立刻想到快慢指针!和第 26 题思路几乎一样,只是判断条件变了。


二、解题思路(快慢指针)

  1. slow 慢指针:指向新数组应该放置的位置
  2. fast 快指针:遍历数组,检查当前元素是否需要保留
  3. 核心判断nums[fast] != nums[slow-2]意思:当前元素 不等于 新数组倒数第二个元素 → 可以保留
  4. 这样能保证同一个数字最多出现 2 次

三、AC 代码(C 语言)

c运行

int removeDuplicates(int* nums, int numsSize) { if (numsSize <= 2) return numsSize; int slow = 2; // 前两个一定保留 for (int fast = 2; fast < numsSize; fast++) { // 不和上上个重复,就保留 if (nums[fast] != nums[slow - 2]) { nums[slow] = nums[fast]; slow++; } } return slow; }

四、实现过程中遇到的困难

  1. 不知道怎么判断 “最多两个”一开始想计数,很麻烦。✅ 解决:直接比较fastslow-2,超级简单。

  2. slow 从 0 开始出错会导致前两个元素被错误覆盖。✅ 解决:slowfast都从2开始。

  3. 边界情况忘记处理数组长度 0、1、2 时直接返回即可。✅ 解决:开头加判断。


五、今日收获心得

  1. 掌握通用去重模板最多保留 k 个重复项:

    • 保留 1 个 → 判断slow-1
    • 保留 2 个 → 判断slow-2
    • 保留 k 个 → 判断slow-k
  2. 快慢指针真的万能有序数组去重、删除元素、移动零,全部能用。

  3. 代码越写越简洁不用额外空间、O (n) 时间、逻辑清晰,这就是最优解。

  4. 刷题越来越有体系数组题型总结:

    • 查找 → 二分
    • 删除 / 去重 → 快慢指针
    • 连续子数组 → 滑动窗口
    • 螺旋矩阵 → 四边界
    • 合并有序数组 → 逆序双指针

六、总结

LeetCode 80 是有序数组去重的经典进阶题。记住核心:fast 遍历,slow 构建,比较 nums [fast] 和 nums [slow-2]直接秒杀!

坚持每日一题,算法稳步提升!

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

别再乱放CSS和JS了!ASP.NET Core项目里wwwroot文件夹的正确打开方式

别再乱放CSS和JS了&#xff01;ASP.NET Core项目里wwwroot文件夹的正确打开方式 刚接触ASP.NET Core的开发者经常会遇到一个奇怪的现象&#xff1a;明明在项目中添加了CSS和JavaScript文件&#xff0c;运行时却总是报404错误。这往往是因为没有理解wwwroot文件夹的特殊地位——…

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

VR交通蛋椅|让交通规则“看得见、记得住”

在交通安全教育不断升级的背景下&#xff0c;传统“看展板、听讲解”的方式&#xff0c;已经很难满足公众尤其是青少年对沉浸式、参与式学习的需求。VR交通蛋椅&#xff0c;正是在这样的需求下应运而生的一款互动式交通安全科普设备。它将虚拟现实技术与符合人体工学的蛋椅结构…

作者头像 李华
网站建设 2026/4/24 5:51:28

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

题目链接&#xff1a;https://leetcode.cn/problems/remove-duplicates-from-sorted-array-ii/ 视频链接&#xff1a;https://www.bilibili.com/video/BV18G5UzzE8c/初次解题与思考延续昨天的双指针思路&#xff0c;但需要增加一个计数器来记录当前元素出现的次数。当遇到重复元…

作者头像 李华
网站建设 2026/4/24 5:43:45

Voxtral-4B-TTS-2603高清音频展示:FLAC无损格式下人声频谱细节还原效果

Voxtral-4B-TTS-2603高清音频展示&#xff1a;FLAC无损格式下人声频谱细节还原效果 1. 专业级语音合成的突破 Voxtral-4B-TTS-2603是Mistral最新发布的开源语音合成模型&#xff0c;专为追求专业级音频质量的生产场景设计。这款模型最令人惊艳的特点在于它能够生成接近真人录…

作者头像 李华