根据 删除排序数组中的重复数字 中的题意,跟进 ”删除重复数字“,如果可以允许出现两次重复将如何处理?
给出数组 A = [1,1,2,2,2,3]
,你的函数应该返回长度 5,此时 A = [1,1,2,2,3]
。
这道题跟 删除排序数组中的重复数字 差不多,无非就是多判断一次,判断是否有两个连续的重复元素即可。
public class Solution {
/**
* @param A: a array of integers
* @return : return an integer
*/
public int removeDuplicates(int[] nums) {
if (nums == null) {
return 0;
}
int index = 0;
int i, j;
for (i = 0; i < nums.length;) {
int now = nums[i];
for (j = i; j < nums.length; j++) {
if (nums[j] != now)
break;
if (j - i < 2) {
nums[index++] = now;
}
}
i = j;
}
return index;
}
}