/**80. Remove Duplicates from Sorted Array II
* @param nums
* @return 保留<=2个相同数字
*/
public int removeDuplicatesII(
int[] nums) {
int count =
0;
int len = nums.length;
int twice =
0;
for (
int i=
1; i<len; i++) {
if (nums[i] == nums[i-
1]) {
twice+=
1;
if (twice >=
2) {
count++;
}
else {
nums[i-count] = nums[i];
}
}
else {
twice =
0;
nums[i-count] = nums[i];
}
}
return len-count;
}
改进,化简逻辑
public int removeDuplicates2(
int[] nums) {
boolean twice =
false;
int len =
0;
if (nums.length >
0) {
len =
1;
}
for (
int i =
1; i < nums.length; i++) {
if (twice ==
false && nums[i] == nums[i-
1]) {
twice =
true;
nums[len++] = nums[i];
}
else if (nums[i] != nums[i-
1]) {
twice =
false;
nums[len++] = nums[i];
}
}
return len;
}
转载请注明原文地址: https://ju.6miu.com/read-5139.html