美文网首页
字节跳动,腾讯大厂面试题——力扣(27)移除元素

字节跳动,腾讯大厂面试题——力扣(27)移除元素

作者: 纯粹的少年 | 来源:发表于2020-09-13 19:17 被阅读0次

题目

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。
不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
例如
给定 nums = [0,1,2,2,3,0,4,2], val = 2,
函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。

解题思路

  • 首先我们判定数组中nums中是否有val,,如果没有的话,我们就进入循环
  • 然后我们就检索当前下标,从这个下标中删除当前元素。
  • 直到我们检索数组中没有当前val的时候,我们就跳出循环,这时数组中所有和val相同的项已经全部删除。
  • 之后我们返回这个数组的长度。

代码

  • 话不多说我们直接上代码
function removeElement(nums, val) {
    // 当数组中有val时进入循环,直到没有val
    while(nums.indexOf(val) !==-1){
        // 删除当前nums中和val相同的值
        nums.splice(nums.indexOf(val),1);
    }
    // 返回改变后的长度
    return nums.length;
};

相关文章

网友评论

      本文标题:字节跳动,腾讯大厂面试题——力扣(27)移除元素

      本文链接:https://www.haomeiwen.com/subject/xfnnektx.html