LeetCode 27. Remove Element
2016-04-07 22:23
369 查看
Given an array and a value, remove all instances of that value in place and return the new length.
Do not allocate extra space for another array, you must do this in place with constant memory.
The order of elements can be changed. It doesn't matter what you leave beyond the new length.
Example:
Given input array nums =
Your function should return length = 2, with the first two elements of nums being 2.
注:vector的erase操作,经过nums.erase(i)以后,迭代器已经指向下一个元素,此时不能再对迭代器i进行自加操作,否则会跳过下一个元素。
Do not allocate extra space for another array, you must do this in place with constant memory.
The order of elements can be changed. It doesn't matter what you leave beyond the new length.
Example:
Given input array nums =
[3,2,2,3], val =
3
Your function should return length = 2, with the first two elements of nums being 2.
注:vector的erase操作,经过nums.erase(i)以后,迭代器已经指向下一个元素,此时不能再对迭代器i进行自加操作,否则会跳过下一个元素。
class Solution { public: int removeElement(vector<int>& nums, int val) { int n = nums.size(); int length = n; vector<int>::iterator i = nums.begin(); while(i != nums.end()) { if(*i == val) { nums.erase(i); length--; } else { i++; } } return length; } };
相关文章推荐
- 笔试题(2016.4.7)
- 解决s:iterator嵌套s:radio的传值问题
- ServletContext的讲解和使用
- alibaba druid数据源配置参考
- JavaScript基础教程02好神奇的变量var
- initialize
- jvm参数
- 第二十三章 命令模式
- ABP源码分析二十四:Notification
- leetcode_061 Rotate List
- 安卓程序中RadioGroup的使用
- Struts2 Web 资源获取
- awk去重
- 蟠桃记
- 数组实用类Arrays和枚举类型Enum
- Linux内核通知链机制的原理及实现【转】
- redis总结
- 第五周总结
- C++ Primer Plus (第6版)课后习题答案 第二章
- JAVA第二天,刷题