Follow up for “Remove Duplicates”:
What if duplicates are allowed at most twice?中文含义:紧接着26. Remove Duplicates from Sorted Array,如果最多允许两个重复的呢?
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.
解决思路,可以参考26题的第二种思路,一样的做法:
public static int removeDuplicates(int[] nums) {
int i = 0;
for (int n : nums)
if (i < 2 || n > nums[i-2])
nums[i++] = n;
return i;
}
测试用例:
public static void main(String[] args) {
int [] nums = {1,1,1,2,2,3};
int result = removeDuplicates(nums);
LogUtil.log_debug("" + result);
for(int i=0; i<result; i++){
LogUtil.log_debug(""+nums[i]);
}
}
输出:
2017-02-05 12:31:42:数组长度5
[1, 1, 2, 2, 3, ]