
class Solution {
public:
int removeDuplicates(int A[], int n) {
int *s=&A[],*e=&A[]; //s指向开头第一个,e往后遍历相同的
int t,i,j=n;
for(i=;i<n;i++){
e++;
if(*s==*e)
j--;
else{
s++;
*s=*e;
}
}
return j;
}
};
题意:给一个整型有序数组,将其中重复的元素删除,几个相同的元素只留下一个即可,并返回共有多少种不同的元素。
思路:这是数组,所以有重复的地方就要移动后面的元素,用两个指针s和e,e用来遍历所有元素,s用来指向当前已处理过的地方,最终e会遍历到第n个,s会指向新数组的最后一个元素。
注意:没什么好注意的,这么短的代码。指针不要越界。