LeetCode 80 删除排序数组中的重复项

  • 分析

     双指针解法,slow指向的是前面以满足要求的带插入位置,fast遍历指针。

  • 代码
class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        int slow = 0, fast = 0;
        int size = nums.size();
        int num = 0;
        while(fast < size){
            if(0 == slow){
                nums[slow] = nums[fast];
                slow++;
                fast++;
                num++;
                continue;
            }   

            if(nums[fast] != nums[slow - 1]){//不相等的情况                
                nums[slow] = nums[fast];
                slow++;
                num = 1;
            }else if(nums[fast] == nums[slow - 1] && num < 2){//相等的情况                
                nums[slow] = nums[fast];
                slow++;
                num++;
            }

            fast++;
        }

        return slow;
    }
};

猜你喜欢

转载自blog.csdn.net/xiaoan08133192/article/details/108559656
今日推荐