[LeetCode]Remove Duplicates from Sorted Array II
2015-08-04 19:57
525 查看
题目描述:给出一列有序数组,最多可以保留两个相同元素,如果还有更多次重复的话,那么要删除重复的元素,并且要求返回元素个数。
比如说,[1,1,1,2,2,3]最后要输出5,[1,1,2,2,3]
解题思路:Two Pointers。两个指针一前一后,相对上一题,增加一个times(控制元素出现个数)的变量,初始化为一次。因为任何一个出现的元素最少出现一次,少于一次它就是不出现了_(:з」∠)_
==============================================================================================================
综上而述,代码如下:一次AC.
比如说,[1,1,1,2,2,3]最后要输出5,[1,1,2,2,3]
解题思路:Two Pointers。两个指针一前一后,相对上一题,增加一个times(控制元素出现个数)的变量,初始化为一次。因为任何一个出现的元素最少出现一次,少于一次它就是不出现了_(:з」∠)_
==============================================================================================================
综上而述,代码如下:一次AC.
class Solution { public: int removeDuplicates(vector<int>& nums) { int N = nums.size(); if ( N<=2 ) return N; vector<int>::iterator iter=nums.begin(); vector<int>::iterator iter1=iter+1; int times=1; while( iter1 != nums.end() ) { if( *iter==*iter1 ) { ++times; if(times==2) iter1++; if(times>2) nums.erase(iter1); } else { if( times==1 ) ++iter; if( times>=2 ) iter+=2; ++iter1; times=1; } } return N=nums.size(); } };
相关文章推荐
- [leetcode] Maximum Gap
- CodeForces 560A Currency System in Geraldion
- poj-2553 Frogger
- Populating Next Right Pointers in Each Node II
- 深入分析安卓软件安装原理
- eclipse get set 大小写
- ubuntu14.04 kylin下安装android studio
- FileInputStream 读取文件数据的输入字节流
- Java 正确遍历字符串
- IAP入门笔记
- SDKD Summer Team Contest A
- 第八章集合运算
- C语言编程入门——综合练习(一)
- Deep Learning: Assuming a deep neural network is properly regulated, can adding more layers actually make the performance degrade?
- Oracle开发包被锁解决办法-终极办法
- Python新手必备练习4---开发一个计算器程序
- 播放gif
- Flume-NG之KafkaChannel
- oracle 简装版修改字符集
- Android SDK 在线更新镜像服务器资源