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.
class Solution { public: int removeDuplicates(vector<int>& nums) { vector<int>::size_type it1; vector<int>::size_type it2; int time=0; if(nums.size()<2) return nums.size(); for(it1=0,it2=1;it2<nums.size();it2++) { if(nums[it1]==nums[it2]&&time==0) { nums[++it1]=nums[it2]; time++; } else if(nums[it1]!=nums[it2]) { nums[++it1]=nums[it2]; time=0; } } return it1+1; } };
时间: 2024-10-31 11:53:26