Remove Duplicates from Sorted Array - LeetCode

Posted 真子集

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Remove Duplicates from Sorted Array - LeetCode相关的知识,希望对你有一定的参考价值。

题目链接

Remove Duplicates from Sorted Array - LeetCode

注意点

  • 解法二要考虑输入为空的情况

解法

解法一:只要两行!超级简单,使用了unique函数。时间复杂度为O(n)

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        nums.erase(unique(nums.begin(),nums.end()),nums.end());
        return nums.size();
    }
};

解法二:来自官方题解。维护两个指针,i是慢指针,j是快指针。j向后移动,如果不等于i说明已经跳过了所有和i重复的数字,接下来就把j复制到i+1,然后继续移动j就好。时间复杂度为O(n)

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

小结

以上是关于Remove Duplicates from Sorted Array - LeetCode的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 26. Remove Duplicates from Sorted Array 80. Remove Duplicates from Sorted Array II

26. Remove Duplicates from Sorted Array

26. Remove Duplicates from Sorted Array

26. Remove Duplicates from Sorted Array

#26 Remove Duplicates from Sorted Array

Remove Duplicates from Sorted Array [Python]