首页 > 其他 > 详细

26. Remove Duplicates from Sorted Array

时间:2021-04-18 22:24:54      阅读:21      评论:0      收藏:0      [点我收藏+]

思路:
直接双指针即可,也称快慢指针吧。
慢指针用来定位应该被替换的元素,也就是数组前几个元素,快指针用于发现和慢指针所指的元素不同的元素,当发现后就替换掉慢指针所指的元素即可。
代码:

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        int slow=0,n=nums.size();
        if(n==0) return 0;
        int res=1;
        for(int i=0;i<n;++i){
            if(nums[i]==nums[slow]) continue;
            res++;
            slow=i;
            nums[res-1]=nums[i];
        }
        return res;
    }
};

优化:

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        int slow=1,n=nums.size();
        if(n==0) return 0;
        for(int fast=1;fast<n;fast++){
            if(nums[fast]!=nums[fast-1]){
                nums[slow++]=nums[fast];
            }
        }
        return slow;
    }
};
``

26. Remove Duplicates from Sorted Array

原文:https://www.cnblogs.com/Mrsdwang/p/14674140.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!