DeleteDuplicatesinSortedArraysII题目描述:给定一个有序数组nums,请原地删除重复的元素,使得每个元素最多出现两次,返回新的长度删除数组。不要使用额外的数组空间,您必须就地修改输入数组并使用O(1)额外空间进行修改。例子见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode所有。商业转载请联系官方授权,非商业转载请注明出处。方案一:数组遍历首先,如果数组的长度不大于2,元素不可能出现两次以上,直接返回;如果数组长度超过2,则声明一个List为twiceNums,记录出现2次的数字,声明一个Set为onceNums,记录出现过一次的数字,将数字的第一个数字放入onceNums,结果为数的长度,然后遍历数组nums,从第二个元素开始,遍历过程如下:如果当前数已经存在于twiceNums中,则说明出现了两次,将当前数移动到结果位置,然后将结果减一,然后进行下一轮处理;如果当前数存在于onceNums中,则将当前数添加到twiceNums中,继续处理下一个数;如果onceNums中不存在当前数,则将当前数添加到onceNums中,继续处理下一个数。最后,返回的结果是数组的新长度。importjava.util.ArrayList;importjava.util.HashSet;importjava.util.List;importjava.util.Set;publicclassLeetCode_080{publicstaticintremoveDuplicates(int[]nums){//如果长度数组不是大于2,元素不可能出现超过两次,直接返回if(nums.length==1||nums.length==2){returnnums.length;}//出现2次的数List
