标签:
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.
public class Solution { public int removeDuplicates(int[] A) { if(A.length == 0) return 0; int unique = 1; for(int i = 1; i<A.length; ++i) { if(A[i]!=A[i-1]) A[unique++] = A[i]; } return unique; } }
Follow up for "Remove Duplicates":
What if duplicates are allowed at most twice?
For example,
Given sorted array nums = [1,1,1,2,2,3]
,
Your function should return length = 5
, with the first five elements of nums being 1
, 1
, 2
, 2
and 3
. It doesn‘t matter what you leave beyond the new length.
public class Solution { public int removeDuplicates(int[] nums) { if(nums.length == 0) return 0; int count = 1; int unique = 1; for(int i = 1; i<nums.length; ++i) { if(nums[i]!=nums[i-1]) { nums[unique++] = nums[i]; count = 1; } else if(count<2) { nums[unique++] = nums[i]; ++count; } } return unique; } }
26. Remove Duplicates from Sorted Array && 80. Remove Duplicates from Sorted Array II
标签:
原文地址:http://www.cnblogs.com/neweracoding/p/5702126.html