给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

示例 1:
给定 nums = [3,2,2,3], val = 3,
函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。
你不需要考虑数组中超出新长度后面的元素。
示例 2:
给定 nums = [0,1,2,2,3,0,4,2], val = 2,
函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。
注意这五个元素可为任意顺序。
你不需要考虑数组中超出新长度后面的元素。

说明:
为什么返回数值是整数,但输出的答案是数组呢?
请注意,输入数组是以“引用”方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。
你可以想象内部操作如下:
// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝
int len = removeElement(nums, val);
// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中该长度范围内的所有元素。
for (int i = 0; i < len; i++) {
print(nums[i]);
}

#include <iostream>
#include <vector>
using  namespace std;
int removeElement(vector<int>& nums, int val) {if(nums.size()==0) return 0;vector<int>::iterator step=nums.begin();//cout<<pre<<endl;for(;step!=nums.end();){//cout<<*step<<endl;if(*step==val){nums.erase(step);}else{step++;}}return nums.size();
}int main() {vector<int> a={0,1,2,2,3,0,4,2};int ans=removeElement(a,2);std::cout <<ans<< std::endl;return 0;
}

转载于:https://www.cnblogs.com/biat/p/10561884.html

#leetcode刷题之路27-移除元素相关推荐

  1. LeetCode 刷题之路(python版)

    摘自:https://blog.csdn.net/qq_32384313/article/details/90745354 LeetCode 刷题之路(python版) 小坏wz 2019-06-02 ...

  2. ​LeetCode刷题实战546:移除盒子

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  3. python -- leetcode 刷题之路

    第一题 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nums = [2, 7, 11, 15], tar ...

  4. LeetCode刷题之路(四)——medium的进阶

    Problem 29:Divide Two Integers   不使用除法.乘法和求余运算,完成两个数的除法,当数值溢出时,返回MAX_INT.   解题思路:第一想法,直接用被除数循环减去除数,每 ...

  5. leetcode 刷题之路 64 Construct Binary Tree from Inorder and Postorder Traversal

    Given inorder and postorder traversal of a tree, construct the binary tree. Note: You may assume tha ...

  6. #leetcode刷题之路35-搜索插入位置

    给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5,6], 5 输 ...

  7. #leetcode刷题之路39-组合总和

    给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的数字可以无限制重复被选 ...

  8. LeetCode刷题之路:1049. 最后一块石头的重量 II

    有一堆石头,用整数数组 stones 表示.其中 stones[i] 表示第 i 块石头的重量. 每一回合,从中选出任意两块石头,然后将它们一起粉碎.假设石头的重量分别为 x 和 y,且 x < ...

  9. LeetCode刷题之路:11. 盛最多水的容器

    给你 n 个非负整数 a1,a2,-,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) .找出其中的两条线,使 ...

  10. 和海王一起从零刷题之(3):原地移除元素

    题目: 来源:leecode_27 简述:给定一个数组,要求不借助额外空间,移除指定元素,返回数组新的长度. 如: 输入:[4,5,5,4] 5 输出:[4,4] 2 难度 介于简单和中等之间, 主要 ...

最新文章

  1. Kettle提高表输出写入速度(每秒万条记录)
  2. treeview托拽和动态添加节点以及treeview和xml的交互的实现
  3. The compiler compliance specified is 11 but a JRE 1.8 is used
  4. Struts2的两个蝴蝶飞,你好简单开发(一)
  5. framebuffer驱动详解0——framebuffer介绍
  6. 丘成桐演讲全文:几何与计算数学的关系
  7. 信息学奥赛一本通C++语言——1012:计算多项式的值
  8. 找不到 查找_当心Excel查找替换错误,别犯“台风致山东全省人死亡”的错误
  9. gradle脚本源码查看环境搭建
  10. 思达BI软件StyleIntelligence实例教程—柱状数据对比分析图
  11. 信号完整性(SI)电源完整性(PI)学习笔记(十)传输线的物理基础(三)
  12. 阿里云认证有什么用?考哪个比较好?
  13. lighttpd出现mod_indexfile.so: cannot open shared object file: No such file or directory
  14. Windows10 如何使用微软输入法快速输入时间(yyyy-mm-dd hh:mm:ss格式)
  15. vue中使用clipboard实现点击复制功能
  16. 魔兽在副本里服务器维护了,魔兽世界11月19日维护服务器状态查询地址 6.2.3补丁上线更新一览...
  17. PhotoShop如何使用图层之实例演示?
  18. 【芯片使用】74HCHC595
  19. 6个usb口服务器无响应,win7usb接口没反应怎么办_win7usb接口没反应的解决方法
  20. shl and shr

热门文章

  1. 省赛模拟一 又一道简单题
  2. 《计算机系统:系统架构与操作系统的高度集成》——1.3 操作系统的作用
  3. ACCESS常用数字类型的说明和取值范围
  4. centos 6.5安装extundelete软件报错
  5. eclipse中创建最简单的maven结构的项目
  6. ABAP - 3D Graphs with SAP
  7. Adb命令笔记 --菜鸟的笔记
  8. iPhone文件系统:创建、重命名以及删除文件
  9. gnuplot在windows下的安装和使用
  10. spider_使用随机User-Agent库, 爬取笔趣阁万古天帝章节目录_(fake_useragent)