问题描述 链接到标题
解题思路 链接到标题
采用双指针法,一快一慢,fast
用于检测是否重复,slow
用来被赋值。
代码 链接到标题
#include <vector>
using std::vector;
class Solution {
public:
int removeDuplicates(vector<int> &nums) {
int fast = 1;
int slow = 0;
for (slow = 0; slow < nums.size(); slow++) {
while (fast < nums.size() && nums[fast] == nums[fast - 1])
fast++;
if (fast == nums.size())
break;
nums[slow + 1] = nums[fast++];
}
return slow + 1;
}
};