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
相关推荐
liang_jy10 小时前
文件管理(一)—— 初识文件管理
面试·操作系统
liang_jy11 小时前
文件管理(二)—— 文件结构
面试·操作系统
徐小夕11 小时前
花了一周,3亿tokens,我开源了一款 Word 文档智能审查平台,文稿自动质检+可视化分析,告别低效人工审核
前端·算法·github
可编程芯片开发12 小时前
UPFC统一潮流控制器的simulink建模与仿真
算法
小小仙子13 小时前
矢量网络分析仪如何测试S参数的?
人工智能·算法·机器学习
中微极客14 小时前
降维算法75倍加速:从PCA到稀疏字典学习的工程实践
人工智能·学习·算法
storyseek15 小时前
前缀和实现Kogge-Stone算法
数据结构·算法
元Y亨H15 小时前
开发者必须掌握的十大核心算法
算法
元Y亨H15 小时前
深度解构:数据结构与算法的理论基石与工程演进
数据结构·算法