【LeetCode】83 - Remove Duplicates from Sorted Array
2015-08-09 20:01
381 查看
Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.
Do not allocate extra space for another array, you must do this in place with constant memory.
For example,Given input array nums =
Your function should return length =
Error Solution: runtime error
Solution: "It doesn't matter what you leave beyond the new length."主要是理解这句话,原vector不需要删除元素,用length保存当前下标,直到找到下一个不一样的元素再++
Do not allocate extra space for another array, you must do this in place with constant memory.
For example,Given input array nums =
[1,1,2],
Your function should return length =
2, with the first two elements of nums being
1and
2respectively. It doesn't matter what you leave beyond the new length.
Error Solution: runtime error
class Solution { public: int removeDuplicates(vector<int>& nums) { if(nums.size()<2)return nums.size(); for(vector<int>::iterator iter1=nums.begin(),iter2=nums.begin()+1;iter2!=nums.end();iter1++,iter2++){ if(*iter1==*iter2)nums.erase(iter1);//这里erase之后iter1所指向的元素已经不存在了,故iter1已经无效 } return nums.size(); } };
Solution: "It doesn't matter what you leave beyond the new length."主要是理解这句话,原vector不需要删除元素,用length保存当前下标,直到找到下一个不一样的元素再++
class Solution { public: int removeDuplicates(vector<int>& nums) { if(nums.size()<2)return nums.size(); int length=1; for(int i=1;i<nums.size();i++){ if(nums[i]!=nums[i-1]) nums[length++]=nums[i]; else continue; } return length; } };
相关文章推荐
- Java产生随机数
- (15.1.11.2)听力之短文理解
- 不用聚合函数求最高工资
- [VB版机房]MSGFLEXGRID控件中的数据导出到excel
- JdbcTemplate --- 方法详解
- 二十大数据可视化工具(二)
- 随笔1
- Git的版本控制
- HDU 5366 简单动态规划DP
- JS监听组合按键
- 保存密码(KeyChain的使用)
- 栈的链表实现(JAVA)
- 初识MVC之建项
- Leetcode#114 Flatten Binary Tree to Linked List
- 通讯录的困惑
- JS获取URL后的参数并且解析汉字乱码
- 周总结0809
- 项目管理案例(二)
- 理解*ptr++
- iOS开发-- 设置UIButton的文字显示位置、字体的大小、字体的颜色