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, ]
转载请注明原文地址: https://ju.6miu.com/read-660417.html