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.
Subscribe to see which companies asked this question
C++实现: 该版本拓展性较好,将index和i的初始值改成n,index-2改成index-n 即可拓展成保留N位的版本.
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if (nums.size()<3)
return nums.size();
int index=2;
for(int i=2;i<nums.size();i++)
{
if(nums[index-2]!=nums[i])
nums[index++]=nums[i];
}
return index;
}
};