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.
tag: tow pointers
public class Solution { public int removeDuplicates(int[] nums) { if(nums == null || nums.length == 0) { return 0; } if(nums.length == 1) { return 1; } //初始化 int count = 1; int pre = nums[1]; for(int i = 2; i < nums.length; i++) { if(nums[i] != nums[i - 2]) { nums[count++] = pre; pre = nums[i]; } } //处理最后一步 nums[count++] = pre; return count; } }