Leetcode(27)-移除元素
2024-08-30 02:25:03
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
class Solution {
public:
int removeElement(vector<int>& nums, int val)
{
for(int i=0;i<nums.size();i++)
{
if(nums[i]==val)
{
nums.erase(nums.begin()+i);
i--;
}
}
return nums.size();
}
};
同样是利用了STL中的vector中的erase函数,erase函数的用法有两种,
iterator erase (iterator position); //删除指定元素
iterator erase (iterator first, iterator last); //删除指定范围内的元素
返回值是删除后的下一个元素的迭代器。
我们这里使用的是第一种用法,删除指定的元素,因为参数是迭代器,所以就使用了erase(nums.begin()+i)表示删除第i个元素。同样erase之后会影响到整个vector的长度。
最新文章
- MVVM小记
- Java 权限修饰符
- 安装apache mysql 论坛(一)
- WPF:在XmlDataProvider上使用主-从绑定(Master-Detail Binding)
- C++中vector的实现
- e.target 和 e.srcElement 的使用问题
- java程序的工作原理
- Klass与Oop
- 【学习笔记】Hibernate HQL连接查询和数据批处理 (Y2-1-7)
- js中的typeof和instanceof和===
- 数据库~dotnetcore连接Mysql插入中文失败
- .net 程序 动态 控制IIS 站点域名绑定
- 【EF6学习笔记】(八)更新关联数据
- CentOS7装Tomcat
- LeetCode(115):不同的子序列
- Django连接Oracle数据库配置
- U3D开发中关于脚本方面的限制-有关IOS反射和JIT的支持问题
- Python基础笔记(二)
- Redis的Pub/Sub机制存在的问题以及解决方案
- 深度学习-tensorflow学习笔记(1)-MNIST手写字体识别预备知识
热门文章
- C++:I/O流的概念和流类库的结构
- 简易双色球dome分享
- .NET Core部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx 或 Jexus)
- 前置时间(Lead Time),也称前置期、备货周期
- go mod 以及vscode解决被墙的插件问题
- redis6.0多线程
- 设计模式c++(2)——策略模式
- Spring5源码,@Autowired
- hadoop知识点总结(一)hadoop架构以及mapreduce工作机制
- Kubernetes --(k8s) service