题目明确指出了对空间复杂度的限制,而且还隐含了对时间复杂度的限制。
起初写了个时间复杂度为O(n^2)的版本,提交后提示超时。
经过修改将复杂度降到了O(n)
class Solution {
public:
int removeDuplicates(int A[], int n) {
if(n == 0 || n == 1)
return n;
int pre = A[0];
int count = n;
for(int i = 1; i < n; i++)
{
if(A[i] == pre)
{
A[i] = A[0];
count--;
}
else
{
pre = A[i];
}
}
int position = 1;
for(int i = 1; i < n; i++)
{
if(A[i] != A[0])
{
A[position] = A[i];
position++;
}
}
return count;
}
};