链接: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;

		}
};