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; }}
新闻热点
疑难解答