您的位置:首页 > 其它

LeetCode:Remove Duplicates from Sorted Array I&&II

2013-07-30 15:37 211 查看
bug处

我在处理时候从数组最后开始处理,则前面数据遭到了污染。

class Solution {
public:

int removeDuplicates(int A[], int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(n==0) return 0;
int length = 1;
for(int i = 1;i<n;i++)
if(A[i]!=A[i-1])
length++;
int p=0;
for(int i = 0;i<length;i++)
{
int val = A[p];
A[i] = val;

while(A[p]==val)
{
p++;

}

}
return length;

}
};


一定得考虑数据污染,如果你从头开始存,则每次比较得与后面比较,切勿再与前面比较

class Solution {
public:
int removeDuplicates(int A[], int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(n<=2) return n;
int length = 2;
for(int i =2;i<n;i++)
if(A[i]!=A[i-1]||A[i]!=A[i-2])
length++;
int p = 0;
for(int i =0;i<length;i++)
{
while(p+2<n&&A[p]==A[p+1]&&A[p]==A[p+2])
{
p++;
}
A[i]= A[p];
p++;
}
return length;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: