有序数组删除重复元素

时间:2021-04-07 11:10:11
class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        if(nums.size() == 0) return 0;
        if(nums.size() == 1) return 1;
        int i = 1, j = 1;
        while(j < nums.size())
        {
            if(nums[j-1] != nums[j])
                nums[i++] = nums[j];
            j++;
        }
        return i;
    }
};

 思路:

1.数组长度为1 0的时候单独处理。

2.大于的时候,set 两个 index,i 和 j 。当数组的第 j 个元素和第 j - 1 个元素不同的时候,数组的第 i 个元素 set 为 nums [ j ]。

其实就是遍历数组,找出不重复的元素,放在数组的前面。