删除排序数组中的重复项

使用快慢指针方法,慢指针指向已经去重之后的元素尾部,快指针在遇到和慢指针相同元素时往下走,遇到不同元素时慢指针往下走一步,并将慢指针指向的元素值赋为快指针指向的元素值,具体代码如下

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        if (nums.empty()) {
            return 0;
        }
        int left = 0;
        int right = 0;
        while (right < nums.size()) {
            if (nums[right] == nums[left]) {
                right++;
            }
            else {
                left++;
                nums[left] = nums[right];
                right++;
            }
        }
        return left+1;
    }
};

  

原文地址:https://www.cnblogs.com/rulin/p/13888648.html