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 1, 1, 2, 2 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         if(nums.size()==0||nums.size()==1) return nums.size();
 5         int dup=1;
 6         int index=1;
 7         for(int i=1;i<nums.size();i++)
 8         {
 9             if(nums[i]==nums[i-1])
10                 dup++;
11             else
12                 dup=1;
13 
14             nums[index]=nums[i];
15             if(dup<=2)
16                 index++;
17         }
18         return index;
19     }
20 };

 

posted on 2015-05-06 10:49  黄瓜小肥皂  阅读(109)  评论(0编辑  收藏  举报