Follow up for "Remove Duplicates":
What if duplicates are allowed at most twice?

For example,
Given sorted array A =[1,1,1,2,2,3],

Your function should return length =5, and A is now[1,1,2,2,3].

题意:可以保留一个重复的元素。

思路:第一种是和Remove duplicates from sorted array类似的思想。隔一个比较一次,拿A =[1,1,1,2,2,3]举例子,其对比的过程如下

这里可以将第6行、第10行的2改为3,则至多重复的数字出现三次,代码为:

 1 class Solution
 2 {
 3 public:
 4     int removeDuplicates(int A[], int n)
 5     {
 6         if(n<=2)    return n;
 7         int lo=2;
 8         for(int i=2;i<n;++i)
 9         {
10             if(A[i] !=A[lo-2])
11                 A[lo++]=A[i];
12         }
13         return lo;
14     }
15 };

方法二:使用计数器,当两者不相等计数器重置,将A[i]赋值给A[lo]的下一位;相等时但是count不超过2,将A[i]赋值给A[lo]的下一位,其余,仅计数器++,这样就可以成功将不等的情况后的,出现第二个和A[i]相等的情况时,将其也赋值给前面的元素。

 1 class Solution {
 2 public:
 3     int removeDuplicates(int A[], int n)
 4     {
 5         int lo=0;
 6         int count=0;
 7         if(n<3) return n;
 8
 9         for(int i=1;i<n;i++)
10         {
11             if(A[lo]==A[i])
12             {
13                 count++;
14                 if(count<2)
15                     A[++lo]=A[i];
16             }
17             else
18             {
19                 A[++lo]=A[i];
20                 count=0;
21             }
22         }
23         return lo+1;
24     }
25 };

转载于:https://www.cnblogs.com/love-yh/p/7103271.html

[Leetcode] Remove duplicates from sorted array ii 从已排序的数组中删除重复元素相关推荐

  1. [LeetCode] Remove Duplicates from Sorted Array II

    Follow up for "Remove Duplicates": What if duplicates are allowed at most twice? For examp ...

  2. LeetCode 80. Remove Duplicates from Sorted Array II

    80. Remove Duplicates from Sorted Array II My Submissions QuestionEditorial Solution Total Accepted: ...

  3. Remove Duplicates from Sorted Array II -- LeetCode

    原题链接: http://oj.leetcode.com/problems/remove-duplicates-from-sorted-array-ii/  这道题跟Remove Duplicates ...

  4. 删除排序数组中的重复数字 II · Remove Duplicates from Sorted Array II

    重复一次 [抄题]: 给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度. 不要使用额外的数组空间,必须在原地没有额外空间的条件下完成. [思维问题]: [ ...

  5. lintcode :Remove Duplicates from Sorted Array II 删除排序数组中的重复数字 II

    题目: 删除排序数组中的重复数字 II 跟进"删除重复数字": 如果可以允许出现两次重复将如何处理? 样例 给出数组A =[1,1,1,2,2,3],你的函数应该返回长度5,此时A ...

  6. LeetCode之Remove Duplicates from Sorted Array II

    1.题目 Follow up for "Remove Duplicates": What if duplicates are allowed at most twice? For ...

  7. Remove Duplicates from Sorted Array II leetcode java

    题目: Follow up for "Remove Duplicates": What if duplicates are allowed at most twice? For e ...

  8. Remove Duplicates from Sorted Array II

    题目简述 Follow up for "Remove Duplicates": What if duplicates are allowed at most twice? For ...

  9. [LeetCode-JAVA] Remove Duplicates from Sorted Array II

    题目: Follow up for "Remove Duplicates": What if duplicates are allowed at most twice? For e ...

最新文章

  1. 机器学习入门(18)— 卷积网络中的池化层实现
  2. html 逗号用什么替换,字符串用javascript数组中的逗号替换“↵”
  3. 如何使用OWASP Dependency Check的命令行(CLI)模式进行依赖库安全漏洞扫描
  4. R语言使用randomForest包构建随机森林模型的步骤和流程、随机森林算法包括抽样样本(观察)和变量来创建大量的决策树(多个树,构成了森林,而且通过样本抽样和变量抽样,让多个树尽量不同)
  5. adaptiveThreshold函数
  6. 无线通信AI大赛正式开放评测,50万大奖等你霸榜!
  7. 中国蚁剑 代码解压出错:【object Object】解决方法
  8. 【C语言】结构体赋值
  9. AngularJS之代码风格36条建议【一】(九)
  10. 给你安利一款国产良心软件uTools
  11. docker中的hassio升级_趣说Docker
  12. Qt 方式问题_vortex_新浪博客
  13. 实现当前月记录,下12个月发送提醒。蛋疼的2月.
  14. UVAlive3708 UVA1388 POJ3154 Graveyard【水题】
  15. 酷q服务器未响应,酷Q怎么了,停运后,其他机器框架,该怎么版
  16. 颜色对照表(五)(16进制、RGB、CMYK、HSV、中英文名)
  17. 计算机教室建设方案ppt,屏蔽机房建设方案.ppt
  18. PS制作或编辑gif动态图
  19. 实践数据湖iceberg 第十一课 测试分区表完整流程(造数、建表、合并、删快照)
  20. 微信小游戏 缓存目录

热门文章

  1. 我这样理解技术人的成长过程
  2. cocos2dx 大地图分块加载的研究(初)
  3. 微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  4. 问题-[Delphi]MainFrame.pas(4340): E2036 Variable required
  5. hive左关联剔除和where 剔除不一致
  6. Docker(swarm mode)在一段时间不用后无法启动
  7. 公钥,私钥,SSL(讲的很生动)
  8. 如何用css实现等高布局。
  9. 将某个目录上的Excel表,导入到数据库中.sql
  10. phpmyadmin 安装