Remove Duplicates from Sorted Array II
Follow up for "Remove Duplicates":
What if duplicates are allowed at mosttwice?
For example,
Given sorted array A =[1,1,1,2,2,3],
Your function should return length =5, and A is now[1,1,2,2,3].
只要能记住重复出现多少次,就可以了。
增加一个c记录,出现两次的时候,继续出现的数值就跳过,不填写了。
很简单的一道题目。
class Solution {
public:
int removeDuplicates(int A[], int n) {
if (n == 0) return 0;
int i = 0, j = 1, c = 1;
for ( ; j<n; j++)
{
if (A[j] == A[j-1]) c++;
else c = 1;
if (c <= 2) A[++i] = A[j];
}
return i+1;
}
};
//2014-2-12 update
int removeDuplicates(int A[], int n)
{
int i = 1, j = 1, c = 0;
for (; j < n; j++)
{
if (A[j] != A[j-1])
{
c = 0;
A[i++] = A[j];
}
else if (!c)
{
c++;
A[i++] = A[j];
}
}
return n? i:0;
}
743

被折叠的 条评论
为什么被折叠?



