这一题是耻辱。看了无数遍没看出最初的bug在哪。
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int sz = nums.size();
if (sz <= 1)
return sz;
int fast = 1, slow = 1;
while (fast < sz) {
if (nums[fast] == nums[fast-1])
++fast;
else
nums[slow++] = nums[fast++];
}
return slow;//slow指向的是下一个可以复制的位置,所以本身打小就代表了结果的长度,不用加一
}
};
最初这里最后返回的slow+1