LeetCode26. 删除有序数组中的重复项

题目链接:

26. 删除有序数组中的重复项 - 力扣(LeetCode)

思路分析:同样是双指针问题,和之前的27题很像(LeetCode27.移除元素-CSDN博客,大家可以参考这个),这道题目的升级之处在于我们需要妥善处理好重复出现的元素的关系,所以引入了快慢指针,快指针负责全局遍历,慢指针来删除不需要的元素。

算法分析:在思路里面已经讲了一部分,就是设置快慢指针,然后快指针负责全局移动(要遍历一遍数组),慢指针负责进行处理,每当移动到快指针发现相邻两个元素不相等时,就需要慢指针进行特判。

参考代码:

cpp 复制代码
class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        int n=nums.size();//数组的长度
        if(n==1)//进行一个特判 方便后面用快慢指针
            return 1;
        int slow=1,fast=1;//快慢指针开始都初始化为1
        while(fast<n){//快指针没有遍历完
            if(nums[fast]!=nums[fast-1]){//如果相邻两个元素不相等
                nums[slow]=nums[fast];//把变换的元素的值赋值给慢指针
                slow++;//慢指针向后移动
            }
            ++fast;//快指针每一轮都要移动
        }
        return slow;//慢指针代表了不同元素的个数
    }
};
相关推荐
CS创新实验室2 分钟前
计算机考研408【数据结构】核心知识点总结
数据结构·考研·计算机·408
hetao17338375 分钟前
2025-12-10 hetao1733837的刷题笔记
c++·笔记·算法
步达硬件19 分钟前
【matlab】代码库-一维线性插值
数据结构·算法·matlab
databook23 分钟前
搞懂“元数据”:给数据办一张“身份证”
数据结构·数据分析
myw07120524 分钟前
湘大oj-数码积性练习笔记
c语言·数据结构·笔记·算法
普贤莲花27 分钟前
得物面试总结20251210
程序人生·算法·leetcode
hz_zhangrl38 分钟前
CCF-GESP 等级考试 2025年9月认证C++五级真题解析
开发语言·数据结构·c++·算法·青少年编程·gesp·2025年9月gesp
EXtreme351 小时前
【数据结构】手撕队列(Queue):从FIFO底层原理到高阶应用的全景解析
c语言·数据结构·链表·队列
亭上秋和景清1 小时前
qsort函数(快速排序)
数据结构·算法
轻描淡写6061 小时前
二进制存储数据
java·开发语言·算法