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;//慢指针代表了不同元素的个数
    }
};
相关推荐
xqqxqxxq8 小时前
LeetCode Hot100 矩阵专题题解笔记
笔记·leetcode·矩阵
盘古开天16668 小时前
PPO算法原理详解(下):Clip机制深入剖析与实践指南
人工智能·算法·机器学习
All for pursuit.8 小时前
【贪心-4】581.最短无序连续子数组
数据结构·c++·算法·leetcode
weixin_307779138 小时前
从“人操作仪器”到“Agent 自主发现”:OPL 金属材料自驱动实验室 MVP 技术论述
开发语言·人工智能·算法·架构
释厄6239 小时前
01AB 基本元理——任何智能体的三元法理·0=1→0≠1法理跃迁为天理
人工智能·windows·算法·microsoft·机器学习
Omics Pro9 小时前
经典多组学整合算法→商用云平台
数据库·人工智能·算法·机器学习·自然语言处理
ting94520009 小时前
深度拆解|1752vc Pitch Deck Analyzer 底层技术架构与核心算法原理
人工智能·算法·架构
贾斯汀frank9 小时前
基于 Java + Playwright 实现网站自动访问与数据采集
算法
早睡早起不秃头&9 小时前
【架构】- 移动机器人系统的插件化:让定位算法独立演进
算法·架构
mmmmath_39 小时前
LeetCode.020.有效的括号
数据结构·算法·leetcode