原题链接在这里:https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/
本题是Remove Duplicates from Sorted Array的延伸。不同就是允许一次重复,所以可以加一个limit,当limit小于1的时候可以,同时limit++, limit等于1时跳过。注意这里的条件是小于1而不是2,因为limit初始值为0,刚开始犯了这个错误。
AC Java:
public class Solution {
public int removeDuplicates(int[] nums) {
if(nums == null || nums.length == 0){
return 0;
}
int counter = 1;
int limit = 0;
for(int i = 1; i<nums.length; i++){
if(nums[i] == nums[i-1] && limit < 1){
limit++;
nums[counter] = nums[i];
counter++;
}else if(nums[i] != nums[i-1]){
nums[counter] = nums[i];
counter++;
limit = 0;
}else{
continue;
}
}
return counter;
}
}