题目:
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.
思路:
从数组的第三个元素开始遍历,若遇到与A[i-2]相同,则删除A[i]
/** * @param {number[]} nums * @return {number} */ var removeDuplicates = function(nums) { var pre=0,next=2; if(nums.length<=2){ return nums.length; } for(var i=2;i<nums.length;){ if(nums[pre]==nums[i]){ nums.splice(i,1); }else{ pre++; i++; } } };