Follow up for "Remove Duplicates": What if duplicates are allowed at most twice?
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.
使用两个指针,其中i遍历原数组中的每个元素,k指向删除重复数字后的长度。
public class Solution {
public int removeDuplicates(int[] nums) {
if(nums.length==0) return 0;
int i=2,k=2;
while(i<nums.length){
if(!(nums[i]==nums[k-1]&&nums[i]==nums[k-2])){
nums[k++]=nums[i];
}
i++;
}
return k;
}
}
转载请注明原文地址: https://ju.6miu.com/read-450237.html