力扣删除有序数组中的重复项C++

题目


知识点


思路

此题使用双指针法,O(n)的时间复杂度,拼速度的话,可以剪剪枝。

注意题目中:不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

双指针法,动画如下:


错误

返回的是删除重复元素后,数组的新长度


题解

cpp 复制代码
class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        if(nums.size() == 0){
            return 0;
        }
        int slow = 0;
        int fast = 1;
        while(fast < nums.size()){
            if(nums[slow] != nums[fast]){//不等就是出现不重复的元素
                nums[++slow] = nums[fast];//放到新位置
            }
            fast++;
        }
        return slow + 1;
    }
};
相关推荐
飞Link2 分钟前
动作方法中的分割与过度分割方法全解析(含代码实战与踩坑案例)
人工智能·python·算法·计算机视觉
张宇Joaquin36 分钟前
鲲鹏统一并行加速库KUPL--异步数据拷贝
线性代数·算法·矩阵·numpy
GlobalInfo38 分钟前
创新不是追逐热点,是在变化中建立长期竞争力
大数据·算法
lvwangshu44 分钟前
线性代数基础 Linear Algebra Basics
数学·算法
ZhouDevin1 小时前
算法论文/数据集5——AlignPrune(CVPR2026)基于样本损失时间序列精确识别噪声样本
算法
十铭忘2 小时前
HMM(隐马尔可夫模型)的理解7——Baum–Welch 算法
人工智能·算法
明月_清风2 小时前
十大经典排序算法 Go 实现全解:从入门到面试通关
后端·算法·排序算法
liliangcsdn3 小时前
如何对IC时间序列进行汇总统计分析示例
人工智能·算法·机器学习
程序员杰哥3 小时前
如何做接口测试?
自动化测试·python·测试工具·职场和发展·测试用例·接口测试·postman
土司大王3 小时前
LeetCode hot100——缺失的第一个正数
数据结构·算法·leetcode