题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
解题思路:因为数组有序,相等的元素一定相邻,所以可以使用一个变量num统计相等元素的个数,如果当前元素和前一个元素相等,令num++。另外使用一个变量len记录删除后数组的新长度,如果当前正在遍历的元素出现的次数小于等于2,就令nums[len++] = nums[i],否则的话直接跳过这个元素,如果当前元素和前面的元素不相等,就令num=0,重新进行计数,最终len就是返回的结果
AC代码
class Solution {
public int removeDuplicates(int[] nums) {
int len=1;
int num = 0;
for (int i =1;i<nums.length;i++){
if (nums[i]!=nums[i-1]){
num=0;
nums[len++] =nums[i];
}else {
num++;
if (num<2){
nums[len++] = nums[i];
}
}
}
return len;
}
}
文章来源:https://www.toymoban.com/news/detail-642212.html
文章来源地址https://www.toymoban.com/news/detail-642212.html
到了这里,关于80. 删除有序数组中的重复项 II的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!