26. 删除有序数组中的重复项(双指针法) 零基础快速入门基础算法指南 力扣手把手带刷

复制代码
int removeDuplicates(int* nums, int numsSize) {
    if(numsSize==0) return 0;
    int fast=1,slow=1;
    while(fast<numsSize){
        if(nums[fast]!=nums[fast-1]){
            nums[slow++]=nums[fast];
        }
        fast++;
    }
    return slow;
}

核心思路:双指针法

  1. 指针定义
    • fast:快指针 ,遍历原数组,负责寻找不重复的新元素。
    • slow:慢指针 ,指向新数组(无重复)的下一个待填充位置。
  2. 核心逻辑 因为数组是非严格递增 的,重复元素一定相邻 ,所以只需比较 nums[fast] 和 nums[fast-1]:
    • 若两者不相等 :说明找到新的不重复元素,将其赋值到 nums[slow],并让 slow 后移。
    • 若两者相等 :说明是重复元素,直接跳过,仅让 fast 后移。
  3. 结果 遍历结束后,slow 的值就是去重后数组的长度 ,且数组前 slow 个元素为去重后的结果。

https://leetcode.cn/problems/remove-duplicates-from-sorted-array/solutions/728105/shan-chu-pai-xu-shu-zu-zhong-de-zhong-fu-tudo

相关推荐
niyongsheng几秒前
3D 装箱算法工程化:数据结构、放置启发式与支撑规则
数据结构·算法·rust
叉烧滑蛋2 小时前
B站台湾大学郭彦甫|MATLAB 学习笔记|04 变量与档案存取
数据结构
j7~3 小时前
【穷举、深搜与回溯算法】一棵决策树讲透全排列与子集
数据结构·c++·算法·leetcode·回溯·递归
傅科摆 _ py3 小时前
DP,贪心,堆和栈,二分力扣复习
开发语言·python·算法
Shaoshing4 小时前
LeetCode100 42.接雨水
java·算法·leetcode
域限奇点访客4 小时前
用AI生成问卷的网站怎么选?看题目录入结构、题型映射和生成后的校验
算法
not coder5 小时前
一文讲通--从树到红黑树
数据结构·算法
octopus_c5 小时前
C++ 入门
开发语言·c++·算法
爱吃香菜的初学者6 小时前
八.数据结构——哈希表(1)
数据结构·散列表
ZhengEnCi6 小时前
2026年10月30日AI早报:Gemini 4 Carbon登顶、DeepSeek融资1055亿、智元机器人上岗实测
人工智能·算法