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