码迷,mamicode.com
首页 > 其他好文 > 详细

80. Remove Duplicates from Sorted Array II

时间:2018-06-14 15:07:11      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:one   sorted   leetcode   from   比较   public   alt   targe   splay   

题目链接

题目大意:与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

标签:one   sorted   leetcode   from   比较   public   alt   targe   splay   

原文地址:https://www.cnblogs.com/cing/p/9182224.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!