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

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

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

示例 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。注意这五个元素可为任意顺序。你不需要考虑数组中超出新长度后面的元素。

提示:

0 <= nums.length <= 100
0 <= nums[i] <= 50
0 <= val <= 100

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/remove-element

方法1:暴力遍历

class Solution {public int removeElement(int[] nums, int val) {int len = nums.length;for(int i = 0 ;i < len;i++){if(nums[i] == val){for(int j = i;j < len -1;j++){nums[j] = nums[j+1];}i--;len--;}}return len;}
}

方法2:快慢指针方法

class Solution {public int removeElement(int[] nums, int val) {int first = 0;int second = 0;for(first = 0;first < nums.length;first++){if(nums[first] != val){nums[second++] = nums[first];}}return second;}
}

数组|leetcode27.移除元素相关推荐

  1. python pop() ,如何在Python的列表或数组中移除元素

    python pop() ,如何在Python的列表或数组中移除元素 在本文中,你将学习如何使用Python内置的 pop() 方法,最后,你将知道如何使用 pop() 从 Python 中的列表中删 ...

  2. LeetCode--27. 移除元素(双指针)

    移除元素(C, Python) 1. 题目描述 2. 题目分析 3. C语言实现 3.1 双指针排序法 3.2 双指针乱序法 4. Python实现 1. 题目描述 难度:简单 2. 题目分析 该题和 ...

  3. 代码随想录Day01 | LeetCode704.二分查找、LeetCode27.移除元素

    数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合. 数组可以方便的通过下标索引的方式获取到下标下对应的数据 需要两点注意的是 数组下标都是从0开始的. 数组内存空间的地址是连续的 正是因为 ...

  4. #力扣 LeetCode27. 移除元素 #在所有 Java 提交中击败了 100.00% 的用户 @FDDLC

    题目描述: 27. 移除元素 - 力扣(LeetCode) (leetcode-cn.com) Java代码: class Solution { //你需要 原地 移除所有数值等于 val 的元素,并 ...

  5. leetcode27:移除元素(暴力+双指针)

    一:题目 二:暴力+双指针 1:暴力解法 (1):思路 1.在数组当中 我们想要删除一个元素 得靠覆盖也就是后面的元素往前覆盖其想要删除的元素 但是注意的是我们真实的数组中的元素个数是不变的 因为我们 ...

  6. leetcode27 移除元素

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

  7. Leetcode--27. 移除元素

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

  8. LeetCode-27 移除元素

    题目描述: 思路想法: 如果能够领会数组中的模块思想这道题就可以秒杀了: 我们把数组中每一个坑位都当作是必须被重新填的坑位,这是一个模块: 我们把原数组当成手中的袋子的资源:对于第一个坑位来说,我们要 ...

  9. Leetcode27.移除元素(c++,beats 100%,附详细解释~)

    本题采用了双指针的思路: i 指针所指为每次判断与val值是否相同的位置,j 指针所指为判断结果后更新的位置: 整体思路: (1)将两个指针赋初值为0,for循环每次将i指针后移,直到i指针到最后一个 ...

最新文章

  1. OC动态创建的问题变量数组.有数组,在阵列13要素,第一个数据包阵列,每3元素为一组,分成若干组,这些数据包的统一管理。最后,一个数组.(要动态地创建一个数组).两种方法...
  2. 生成对抗网络(GAN)的统计推断
  3. GAN实现半监督学习
  4. AngularJS 日期格式化
  5. 《大话设计模式》 国外资料
  6. 阿里云李飞飞:什么是云原生数据库
  7. 【数据结构与算法】链表倒序输出算法
  8. window和linux下Redis 安装和使用
  9. java cookie id,我如何在Java中获取会话ID
  10. python自动化测试-python自动化之(自动化测试报告)
  11. Java POI 导出EXCEL经典实现 Java导出Excel弹出下载框(转载)
  12. 搜狗词库合集分享_Rime小狼毫
  13. Exce如何行内随机排序确定出场顺序
  14. pcb板led正负极图形_晶体二极管正负极判断_晶体二极管图形符号
  15. 【题解】Luogu P3110 [USACO14DEC]驮运Piggy Back
  16. PDF文件有密码怎么办?
  17. mysql商品库存字段_mysql商品库存扣减问题总结
  18. Logback日志配置和简单使用
  19. 【MySQL | 进阶篇】05、MySQL 视图、触发器讲解
  20. 美国校园最in俗语大全

热门文章

  1. 保研计算机辅助翻译,本科2013级推免生寄语
  2. Chrome 90 里更好的字符串处理机制
  3. 一步步把 SAP UI5 应用部署到 SAP BTP Kyma 运行环境中去
  4. 试图用Session Administration删除某用户的session时报错
  5. Spring中基于注解@AspectJ的AOP实现
  6. 使用jsp打印HTTP请求头部所有字段的值
  7. Hybris里类似ABAP Netweaver的DDIC - 如何做data type的extension
  8. 在SAP Business Application Studio里创建Fiori应用的操作流程
  9. where is path tag generated
  10. Why settype table is used in Genil component implementation