leetcode-----26. 删除排序数组中的重复项

算法

时间复杂度:\(O(n)\)
1、快慢指针,初始两个指针指向第一个数字;
2、遍历数组,若慢指针对应数字不等于快指针,则慢指针加1,并将快指针数字赋给慢指针;
3、无论是否相等,快指针加1。

代码

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        int n = nums.size();
        if (!n) return 0;
        if (n == 1) return 1;

        int i = 0, j = 0;
        while (j < n) {
            if (nums[i] != nums[j]) {
                i++;
                nums[i] = nums[j];
            }
            j++;
        }
        return i + 1;
    }
};
posted @ 2020-03-22 14:18  景云ⁿ  阅读(78)  评论(0编辑  收藏  举报