Leetcode 面试150题(二)

一、题目

给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于 val的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。

假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以下操作:

  • 更改 nums 数组,使 nums 的前 k 个元素包含不等于 val 的元素。nums 的其余元素和 nums 的大小并不重要。
  • 返回 k

二、思路

  1. 从前往后遍历:我们可以从数组的开头开始遍历,找到等于 val 的元素,并将其移到数组的末尾。
  2. 使用指针 k:我们需要一个指针 k 来记录不等于 val 的元素的数量,同时也作为下一个不等于 val 的元素应该放置的位置。

三、具体步骤

  1. 初始化指针 k:设置 k 为 0,表示当前不等于 val 的元素的数量。
  2. 遍历数组:使用另一个指针 i 从头到尾遍历数组 nums
  3. 判断元素:
    • 如果 nums[i] 不等于 val,将 nums[i] 放到 nums[k] 的位置,并将 k 加 1。
    • 如果 nums[i] 等于 val,则跳过这个元素。
  4. 返回结果:最终 k 就是不等于 val 的元素的数量。

① JavaScript代码:

javascript 复制代码
function remove(nums, val){
    let k = 0;
    for(let i =0;i<nums.length;i++){
        if (nums[i]!==val){
            nums[k]=nums[i];
            k++;
        }
    }
    return k;
}

② python代码:

python 复制代码
def removeVal(nums,val):
    k = 0
    for i in range(len(nums)):
        if nums[i] != val:
            nums[k] = nums[i]
            k += 1
    return k
相关推荐
客卿1232 分钟前
动态规划--模板--完全背包
算法·动态规划
L-影9 分钟前
下篇:一棵树能长成多少种样子?——AI中决策树的类型与作用,以及它凭什么活了六十年还没过气
人工智能·算法·决策树·ai
Arthas21710 分钟前
Java大厂面试:从Spring到微服务的全面技术考察
java·jvm·spring·微服务·面试·并发
mifengxing10 分钟前
力扣HOT100——(1)两数之和
java·数据结构·算法·leetcode·hot100
Z.风止11 分钟前
Large Model-learning(2)
开发语言·笔记·python·leetcode
星辰_mya13 分钟前
SQL 性能调优:EXPLAIN 详解与慢查询优化案例
数据库·sql·面试·架构师
無限進步D14 分钟前
算竞常用STL cpp
开发语言·c++·算法·竞赛
仟濹20 分钟前
【算法打卡day34(2026-03-30 周一)】DFS专项训练(今日算法:DFS & 记忆化搜索 & 回溯)
算法·深度优先
罗湖老棍子25 分钟前
【 例 1】区间和(信息学奥赛一本通- P1547)(基础线段树和单点修改区间查询树状数组模版)
数据结构·算法·线段树·树状数组·单点修改 区间查询
coder_Eight28 分钟前
彻底吃透 Promise:从状态、链式到手写实现,再到 async/await 底层原理
javascript·面试