leetcode80. Remove Duplicates from Sorted Array II
2016-04-27 22:50
225 查看
Follow up for "Remove Duplicates":
What if duplicates are allowed at most twice?
For example,
Given sorted array nums =
Your function should return length =
nums being
解题思路:给定一个排好序的数组,允许每个数字出线两次。如果多于两次,则删除。
其实这个题与之前只允许出现一次的那个题目很相似,因为数组已经排好序,所以我们可以进行遍历一次,如果出现的次数多于两次,则不保留,进行删除。
其实这个题目有个对index++和++index的考察。
代码如下:
第二种解法:
What if duplicates are allowed at most twice?
For example,
Given sorted array nums =
[1,1,1,2,2,3],
Your function should return length =
5, with the first five elements of
nums being
1,
1,
2,
2and
3. It doesn't matter what you leave beyond the new length.
解题思路:给定一个排好序的数组,允许每个数字出线两次。如果多于两次,则删除。
其实这个题与之前只允许出现一次的那个题目很相似,因为数组已经排好序,所以我们可以进行遍历一次,如果出现的次数多于两次,则不保留,进行删除。
其实这个题目有个对index++和++index的考察。
代码如下:
class Solution { public: int removeDuplicates(vector<int>& nums) { int n=nums.size(); if(n<=2) { return n; } int index=2; for(int i=2;i<n;i++) { if(nums[i]!=nums[index-2]) { nums[index++]=nums[i]; } } return index; } };
第二种解法:
class Solution { public: int removeDuplicates(vector<int>& nums) { int n=nums.size(); int index=0; for(int i=0;i<n;i++) { if(i<n-2&&nums[i]==nums[i+1]&&nums[i]==nums[i+2]) { continue; } nums[index++]=nums[i]; } return index; } };
相关文章推荐
- 解决新安装的CodeBlocks无法编译运行问题
- 大众点评订单分库分表实践
- 任务分配-dfs
- poj 1556(迪杰斯特拉+计算几何)
- hdu 1003,nefu 728 max sum
- android串口通信以及串口协议解析
- Android-项目结构-day01
- HDU 1051 Wooden Sticks
- 第 6章 函数
- DSP 连不上 JTAG, 'SC_ERR_PATH_BROKEN', 关注EMU1 EMU0
- NOIP 2008 双栈排序
- redis之数据结构--上
- authentication token manipulation error
- Storm内部的消息传递机制
- 初探python
- HDU 1686
- 集合框架(Collection集合的功能概述)
- 20160427 最近的收获
- 算法实验:分治法合并排序(C++)
- php中大括号的用法和意义{}