Leetcode--Remove Duplicates from Sorted Array

Problem Description:

Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.

Do not allocate extra space for another array, you must do this in place with constant memory.

For example,
Given input array A = [1,1,2],

Your function should return length = 2, and A is now [1,2].

分析:从有序数组中删除反复的元素,题目比較简单,能够利用两个下标i,j,用i记录如今第一个不反复的元素,然后利用j找到和i不同的元素,依次插入就可以。详细实现代码例如以下:

class Solution {
public:
    int removeDuplicates(int A[], int n) 
{
	if(n<=0)
		return 0;
	int i=0,j=1;
	while(j<n)
	{
		while(j<n&&A[j]==A[i])
			j++;
		if(j==n)
			break;
		else
		{
			A[++i]=A[j++];
		}
	}
	return i+1;
}
};


posted @ 2014-08-16 10:57  hrhguanli  阅读(127)  评论(0编辑  收藏  举报