80. Remove Duplicates from Sorted Array II

Posted cing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了80. Remove Duplicates from Sorted Array II相关的知识,希望对你有一定的参考价值。

题目链接

题目大意:与26比较。删除数组中重复两次以上的数,剩下的数只有这种形式{1,1,2}。

法一:将重复2次以内的数都保留,重复2次以上的数都跳过删除,其中第一次遇见没有重复的数时,应该更新计数器。代码如下(耗时2ms):

技术分享图片
 1     public int removeDuplicates(int[] nums) {
 2         int k = 1;
 3         int cnt = 1;
 4         for(int i = 1; i < nums.length; i++) {
 5             //如果前后数相等
 6             if(nums[i] == nums[i - 1]) {
 7                 //查看重复次数是否在2的范围内
 8                 if(cnt < 2) {
 9                     nums[k++] = nums[i];
10                     cnt++;
11                 }
12                 else {
13                     cnt++;
14                 }
15             }
16             //如果前后数不想等,放心保留,将计数器重置
17             else {
18                 nums[k++] = nums[i];
19                 cnt = 1;
20             }
21         }
22         return k;
23     }
View Code

 

以上是关于80. Remove Duplicates from Sorted Array II的主要内容,如果未能解决你的问题,请参考以下文章

80 remove duplicates from sorted array 2

80. Remove Duplicates from Sorted Array II

80. Remove Duplicates from Sorted Array II

80. Remove Duplicates from Sorted Array II

80. Remove Duplicates from Sorted Array II(js)

80. Remove Duplicates from Sorted Array II