给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

说明:

为什么返回数值是整数,但输出的答案是数组呢?

请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

你可以想象内部操作如下:

// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝
int len = removeElement(nums, val);

// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中 该长度范围内 的所有元素。
for (int i = 0; i < len; i++) {
print(nums[i]);
}

示例 1:

输入:nums = [3,2,2,3], val = 3
输出:2, nums = [2,2]
解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。
示例 2:

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

解题思路

慢指针指向需要被填补的位置,快指针遍历每一个元素

代码

func removeElement(nums []int, val int) int {slow:=0for i := 0; i < len(nums); i++ {if nums[i]!=val {nums[slow]=nums[i]slow++}}return slow}

leetcode 27. 移除元素(双指针)相关推荐

  1. lrange是取出所有值并移除么_图解双指针 | LeetCode 27. 移除元素

    题目描述 原题链接:LeetCode 27. 移除元素 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在 ...

  2. LeetCode 27.移除元素

    原题链接 /** @lc app=leetcode.cn id=27 lang=cpp** [27] 移除元素标签:拷贝覆盖主要思路是遍历数组nums,每次取出的数字变量为num,同时设置一个下标an ...

  3. LeetCode 27 移除元素 题解

    力扣链接:27.移除元素 要求:不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地修改输入数组.元素的顺序可以改变.你不需要考虑数组中超出新长度后面的元素. 方法一: 思路:利用双指针,头 ...

  4. LeetCode 27移除元素28实现strStr()29两数相除

    维护幸苦,如有打卡欢迎关注公众号bigsai回复进群,如有帮助欢迎点赞支持! 移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长 ...

  5. 9. Leetcode 27. 移除元素 (数组-同向双指针-快慢指针)

    给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度.不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组.元素 ...

  6. [leetcode]27.移除元素

    给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度. 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组. ...

  7. LeetCode 27.移除元素 思考分析

    题目 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度. 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数 ...

  8. LeetCode 27.移除元素

    文章目录

  9. Leetcode 704.二分查找 27.移除元素 代码随想录day1

    本系列目的在于跟练代码随想录,以及记录自己在数据结构与算法方面的一些学习 704.二分查找 其实之前自己在随便刷题的时候看过这道题目,就是一个纯新手的大状态,第一次听到二分查找这样的东西,然后跟着题解 ...

最新文章

  1. 在Web.config或App.config中的添加自定义配置
  2. Python中遍历整个列表及注意点(参考书籍Python编程从入门到实践)
  3. T-Sql(七)用户权限操作(grant)
  4. 使用atomic一定是线程安全的吗
  5. c语言结构体讲解,C语言基础之结构体讲解
  6. mac电脑循环次数多少算新_ARM架构电脑之路,苹果需要从微软Surface ProX中吸取哪些教训?...
  7. c语言猴子吃桃嵌套调用编程,C语言实现猴子吃桃问题(循环、递归两种方法)...
  8. 的注册表怎么才能删干净_袜子怎么洗才能洗干净,你需要这些技巧
  9. 深入理解JavaScript之Event Loop
  10. k-means k均值聚类的弱点/缺点
  11. Ps胶片颗粒效果插件:Imagenomic Realgrain for Mac
  12. vue 上次登录时间_vue实现登录之后长时间未操作,退出登录
  13. iPhone5主摄像头图像传感器来自SONY
  14. win7怎么跳过硬盘自检_从零开始修电脑第二期__电脑自检慢的维修
  15. vue脚手架安装很慢_vue-cli3脚手架安装
  16. 计算机专业综合理论模拟测试卷五,2020银保监会考试题库:计算机类模拟试题练习(五)...
  17. bzoj4605: 崂山白花蛇草水 权值线段树套KDtree
  18. VScode修改行间距
  19. MIMIC III数据集详细介绍
  20. 堆积木 vector 清空内存

热门文章

  1. TCP socket心跳包示例程序
  2. 【C++ Primer | 0 】字符串函数实现
  3. 在线视频常见加密方式及安全性透析
  4. hdu5299 Circles Game
  5. PIL简单图片处理(上)
  6. [LeetCode] #22 Generate Parentheses
  7. poj1681 Painter's Problem高斯消元
  8. word模板生成word报表文档
  9. Thinkphp 发送邮件
  10. JS实现在输入框内输入@时,邮箱账号自动补全