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 1, 1, 2, 2 and 3. It doesn’t matter what you leave
beyond the new length.
题目的意思是输入的nums的前length个数要就是 1,1,2,2
思路也是比较简单如果前后两个数相等时,记录是否为第一次相等,如果是第一次相等,则sum要更新。
int removeDuplicates(int* nums, int N) {
int T = 0;
int sum=1;
if(N==0) return 0;
for(int i = 1; i< N; ++i)
if(nums[i]==nums[i-1]){
if(T==0){
++sum;T=1;nums[sum-1]=nums[i];}
}
else
{++sum;T=0;nums[sum-1]=nums[i];}
return sum;
}
8ms AC