描述
给定一个已排序的数组,使用就地算法将重复的数字移除,使数组中的每个元素只出现一次,返回新数组的长度。
不能为数组分配额外的空间,你必须使用常数级空间复杂度的就地算法。
例如,
给定输入数组 A=[1,1,2],
你给出的函数应该返回length=2,A数组现在是[1,2]。
class Solution {
public:
int removeDuplicates(int A[], int n) {
if (n == 0) return 0;
int slow(1), fast(1);
while(fast < n){
while(fast < n && A[fast] == A[fast-1]) fast++;
if (fast < n)
A[slow++] = A[fast++];
}
return slow;
}
};