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.
題目:將有序數(shù)組中出現(xiàn)次數(shù)大于2的數(shù)更改為出現(xiàn)2次掂咒,返回最終數(shù)組的長度
思路:因為題目給的是有序數(shù)組徘公,所以依次序?qū)⒚恳环N數(shù)的出現(xiàn)次數(shù)記錄在sum數(shù)組中笔宿,如果出現(xiàn)次數(shù)大于2就刪除后面出現(xiàn)的重復(fù)數(shù)含鳞。
/**
* @param {number[]} nums 已知數(shù)組
* @return {number}
*/
var removeDuplicates = function(nums) {
var i , j, n;
var sum = [];
var len = nums.length;
for(i=0;i<len;i++)
sum[i] = 1;
for(i=0,j=0;i<len;i++)
{
if(nums[i] == nums[i+1])
sum[j] = Number(sum[j])+1;
else j++;
}
for(i=0,n=0;i<nums.length;i++)
{
j = sum[n++];
if(j>2)
{
nums.splice(i+2,j-2);
i++;
}
else if(j==2)
i++;
}
return nums.length;
}形用;