问题描述 链接到标题

26.删除有序数组中的重复项

解题思路 链接到标题

采用双指针法,一快一慢,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;
    }
};