lintcode-删除排序数组中的重复数字II-101

跟进“删除重复数字”:

如果可以允许出现两次重复将如何处理?

样例 给出数组A =[1,1,1,2,2,3],你的函数应该返回长度5,此时A=[1,1,2,2,3]

class Solution {
public:
    
    int removeDuplicates(vector<int> &nums) {
        if(nums.empty())
            return 0;
        
        map<int,int> check;  
        int fast=0,slow=0;
        while(fast<nums.size()){
            if(check[nums[fast]]!=2){
                 ++check[nums[fast]]; 
                if(slow!=fast)
                    nums[slow]=nums[fast];
                ++slow;
            }    
            ++fast;
        }
    
        while(slow++<fast)
            nums.pop_back();
    
        return nums.size();
    }
};


你可能感兴趣的:(lintcode-删除排序数组中的重复数字II-101)