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

JavaScript:移除元素

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

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

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

原地移除,意味着不能定义新的变量。

只考虑消耗内存

也就是希望程序运行占用内存最小,代码如下:

var removeElement = function (nums, val) {nums.map((item, key) => {if (item == val) {nums.splice(key, 1);removeElement(nums, val)}})return nums.length
};

通过遍历数组,如果数组元素等于val,则用 splice 函数切掉该元素。这个方法不用声明任何额外的变量。运行占用的内存和执行时间如图所示:
在这里插入图片描述

只考虑执行时间

代码如下:

function removeElement(nums: number[], val: number): number {const n = nums.length;let left = 0;for (let right = 0; right < n; right++) {if (nums[right] !== val) {nums[left] = nums[right];left++;}}return left;
};

这段代码执行需要的时间和消耗内存如下图:
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基于STM32设计的智能门锁(微信小程序+手机APP等多种方式开锁)(188)
  • yarn的安装和配置以及更新总结,npm的对照使用差异
  • 2024最新Cloudways主机使用教程(含最新Cloudways折扣码)
  • adb命令操作手机各种开关
  • 题解:小S与机房里的电脑 Computer_C++算法竞赛_贪心_二分答案_模拟_数据结构
  • 分布式IO系统2通道串口通信模块M602x
  • 昇思25天学习打卡营第16天 | Vision Transformer图像分类
  • JavaWeb入门程序解析(Spring官方骨架、配置起步依赖、SpringBoot父工程、内嵌Tomcat)
  • 2、电脑各部件品牌介绍 - 计算机硬件品牌系列文章
  • 数据结构(Java):力扣 二叉树面试OJ题(二)【进阶】
  • NLP篇5:自然语言处理预训练
  • 【python】多种回归算法对比气温预测
  • 云计算监控减少网络安全事件的五种方法
  • LinuxShell编程1———shell基础命令
  • 打印室预约小程序的设计
  • 分享一款快速APP功能测试工具
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • Angular 2 DI - IoC DI - 1
  • Angular2开发踩坑系列-生产环境编译
  • crontab执行失败的多种原因
  • Docker容器管理
  • JavaScript 奇技淫巧
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Java多态
  • JS笔记四:作用域、变量(函数)提升
  • overflow: hidden IE7无效
  • vue-router的history模式发布配置
  • vue脚手架vue-cli
  • 百度小程序遇到的问题
  • 使用API自动生成工具优化前端工作流
  • 做一名精致的JavaScripter 01:JavaScript简介
  • $nextTick的使用场景介绍
  • (1) caustics\
  • (20)docke容器
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (C++)八皇后问题
  • (ibm)Java 语言的 XPath API
  • (ISPRS,2021)具有遥感知识图谱的鲁棒深度对齐网络用于零样本和广义零样本遥感图像场景分类
  • (libusb) usb口自动刷新
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (十)c52学习之旅-定时器实验
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (原创)可支持最大高度的NestedScrollView
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)创业家杂志:UCWEB天使第一步
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .NET C# 使用GDAL读取FileGDB要素类
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .NET Standard 的管理策略
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET 的程序集加载上下文
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型