首页 > 代码库 > 80. Remove Duplicates from Sorted Array II

80. Remove Duplicates from Sorted Array II

Follow up for "Remove Duplicates":
What if duplicates are allowed at most twice?

For example,
Given sorted array nums = [1,1,1,2,2,3],

Your function should return length = 5, with the first five elements of nums being 1122 and 3. It doesn‘t matter what you leave beyond the new length.

 

 1 class Solution { 2 public: 3     int removeDuplicates(vector<int>& nums) { 4          5         int len = nums.size(); 6         if(len == 0){ 7             return 0; 8         } 9         int start = 0;10         int num = 0;11         for(int i = 1; i < len; i ++){12             if(nums[start] == nums[i]){13                 num ++;14                 if(num < 2){15                     nums[++start] = nums[i];16                 }17             }else{18                 num = 0;19                 nums[++start] = nums[i];20             }21         }22         return start + 1;23     }24 };

 

80. Remove Duplicates from Sorted Array II