LeetCode-Remove Duplicates from Sorted Array II
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.
感觉这道题的oa有点问题。。。先这样吧
public class Solution { public int removeDuplicates(int[] nums) { int res=0; int len=nums.length; int set=0; for(int i=0; i<len; i++){ if(i==0){ set++; res++; } else{ if(nums[i]==nums[i-1]){ set++; if(set<=2){ res++; } } else{ set=1; res++; } } } return res; } }
要in place 改变原数组:
public class Solution { public int removeDuplicates(int[] nums) { if(nums==null || nums.length==0){ return 0; } int startPosition=0; boolean isRepeated=false; for(int i=1; i<nums.length; i++){ if(nums[i] != nums[startPosition]){ isRepeated=false; startPosition++; nums[startPosition] = nums[i]; } else{ if(isRepeated == false){ startPosition++; nums[startPosition]=nums[i]; isRepeated=true; } } } return startPosition+1; } }
posted on 2016-10-05 03:33 IncredibleThings 阅读(91) 评论(0) 编辑 收藏 举报