链接:https://oj.leetcode.com/problems/remove-duplicates-from-sorted-array/
把有序数组中重复的元素删除,并返回删除后的数组长度。
考虑直接插入排序的过程,如果遇见重复的元素,直接抛弃,判断下一个元素。由于数组本身有序,所以,时间复杂的为O(n).
class Solution
{
public:
int removeDuplicates(int A[],int n)
{
int p1=0,p2=0;
if(n==0)
return 0;
while(p2<n)
{
if(A[p1]==A[p2])
{
p2++;
}
else if(A[p1]!=A[p2])
{
A[++p1]=A[p2++];
}
}
return p1+1;
}
};