力扣删除有序数组中的重复项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;
    }
};
相关推荐
团象科技18 分钟前
走访近百支出海技术团队后的海外云计算资源选型实操观察
大数据·人工智能·算法
勤自省34 分钟前
吴恩达机器学习课程实验:线性回归模型入门(课后实验)
人工智能·算法·机器学习·回归·线性回归
ChillCoding39 分钟前
更新中:C++ STL库,查找排序(基础算法),数据结构,数学算法,竞赛相关基础
数据结构·c++·算法
智者知已应修善业44 分钟前
【51单片机使用IO组赋值方法实现无源蜂鸣器响时LED12亮不响时34亮】2024-3-7
c++·经验分享·笔记·算法·51单片机
珊瑚里的鱼1 小时前
【动态规划】按摩师
算法·动态规划
Fms_Sa1 小时前
贪心算法-背包问题
算法·贪心算法·c#
大雨淅淅1 小时前
【机器人】ROS2 机械臂控制(MoveIt2)从入门到实战
人工智能·python·神经网络·学习·算法·机器学习·机器人
m0_564876841 小时前
怎么写好一个好的skill
人工智能·深度学习·职场和发展
智者知已应修善业2 小时前
【51单片机0.1秒计时到21.0时点亮LED】2024-1-5
c++·经验分享·笔记·算法·51单片机
apcipot_rain2 小时前
计科八股20260606——二叉树、PCA、图深度学习、进程上下文、C语言预编译、文件读写、单精度浮点数
c语言·数据结构·算法·pca·图神经网络