题目:移除有序数组中的重复元素
思路:可以定义两个指针a,b;从头开始遍历,如果当前值等于前一个值,则b继续前行,a不动,否则a前行一步,且把b所在位置当前值赋给a所在位置。这样当b遍历到结尾,a的值即为不重复的值得数目,且都包含在0-a之间。
class Solution {
public:
int removeDuplicates(int A[], int n) {
if(n<=1)return n;
int i=0,j=1;
int temp=A[0];
while(j<n){
if(A[j]==temp){
j++;
}
else{
i++;
temp=A[j];
A[i]=A[j];
j++;
}
}
return i+1;
}
};