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 nums = [1,1,2]
,
Your function should return length = 2
, with the first two elements of nums being 1
and 2
respectively. It doesn't matter what you leave beyond the new length.
解题思路:
看到题目的例子,感觉非常简单,不就返回一个int么?Too Simple,提交后才发现,nums[]的值也得跟着变,不过加行代码就行了,JAVA实现如下:
public int removeDuplicates(int[] nums) { if(nums.length==0) return 0; int result=1,c=nums[0]; for(int i=0;i<nums.length;i++){ if(nums[i]>c){ c=nums[i]; result++; nums[result-1]=c; } } return result; }