当前位置: 首页 > article >正文

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代码:

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代码:

def removeVal(nums,val):
    k = 0
    for i in range(len(nums)):
        if nums[i] != val:
            nums[k] = nums[i]
            k += 1
    return k


http://www.kler.cn/a/567312.html

相关文章:

  • npx degit 问题:could not fetch remote...
  • AI赋能视频创作:零基础也能玩转短视频制作
  • 基于redis的位图实现签到功能
  • 【Python修仙编程】(二) Python3灵源初探(1)
  • 大白话React Hooks(如 useState、useEffect)的使用方法与原理
  • DeepSeek-V3关键技术之一:DeepSeekMoE
  • NLP vocab中为什么有的有▁前缀,有的没有呢?
  • 微软Office 2016-2024 x86直装版 v16.0.18324 32位
  • ESP32+Mixly-WiFi
  • 在Docker中部署DataKit最佳实践
  • Redis数据结构-Hash哈希
  • 集合之List--ArrayList与LinkedList以及List与数组、Set的区别
  • win7电脑上最好安装 Python什么版本?
  • 8 SpringBoot进阶(上):AOP(面向切面编程技术)、AOP案例之统一操作日志
  • 子宫腺肌症会导致不孕吗?
  • Zion x 硅基流动 DeepSeek接入指南
  • 卢卡斯定理判断组合数奇偶(Codeforces Round 1006 (Div. 3)——F)
  • 买二赠一--蓝桥
  • 版图自动化连接算法开发 00003 ------ 添加两个中间点实现 Manhattan 方式连接两个给定的坐标点
  • 升级Office软件后,Windows 系统右键里没有新建Word、Excel、PowerPoint文件的解决办法