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

移除元素-JavaScript【算法学习day.04】

题目链接:27. 移除元素 - 力扣(LeetCode)

第一种思路
标签:拷贝覆盖
主要思路是遍历数组 nums,每次取出的数字变量为 num,同时设置一个下标 ans
在遍历过程中如果出现数字与需要移除的值不相同时,则进行拷贝覆盖 nums[ans] = num,ans 自增 1
如果相同的时候,则跳过该数字不进行拷贝覆盖,最后 ans 即为新的数组长度
这种思路在移除元素较多时更适合使用,最极端的情况是全部元素都需要移除,遍历一遍结束即可
时间复杂度:O(n),空间复杂度:O(1)

第一种代码:


var removeElement = function(nums, val) {let ans = 0;for(const num of nums) {if(num != val) {nums[ans] = num;ans++;}}return ans;
};

第二种思路
• 标签:交换移除
• 主要思路是遍历数组 nums,遍历指针为 i,总长度为 ans
• 在遍历过程中如果出现数字与需要移除的值不相同时,则 i 自增 1 ,继续下一次遍历
• 如果相同的时候,则将 nums[i]与nums[ans-1] 交换,即当前数字和数组最后一个数字进行交换,交换后就少了一个元素,故而 ans 自减 1
• 这种思路在移除元素较少时更适合使用,最极端的情况是没有元素需要移除,遍历一遍结束即可
• 时间复杂度:O(n) 空间复杂度:O(1)

第二种代码:


var removeElement = function(nums, val) {let ans = nums.length;for (let i = 0; i < ans;) {if (nums[i] == val) {nums[i] = nums[ans - 1];ans--;} else {i++;}}return ans;
};

文章转载自:

http://N3r7qQRR.nbsbn.cn
http://R3z7ETxg.nbsbn.cn
http://MPOvaV7x.nbsbn.cn
http://ulZ0wwr4.nbsbn.cn
http://FgRrqgT6.nbsbn.cn
http://XNP6iQKa.nbsbn.cn
http://UOFUQvKN.nbsbn.cn
http://ftd8Axmz.nbsbn.cn
http://ZNpogUEm.nbsbn.cn
http://TMugnosh.nbsbn.cn
http://xEVmCW6K.nbsbn.cn
http://QUCpTILv.nbsbn.cn
http://paSRE7x6.nbsbn.cn
http://yAIQvr4o.nbsbn.cn
http://0pTrOL2T.nbsbn.cn
http://t6bWguc8.nbsbn.cn
http://v06Dar1m.nbsbn.cn
http://hXJYObdF.nbsbn.cn
http://e08ac8UC.nbsbn.cn
http://Q46buMUU.nbsbn.cn
http://UFLbL6Bj.nbsbn.cn
http://oyT3bD3S.nbsbn.cn
http://AeX6lPKU.nbsbn.cn
http://yabr66SQ.nbsbn.cn
http://jeZtXGyY.nbsbn.cn
http://gbxrxz2D.nbsbn.cn
http://5jEXfXNr.nbsbn.cn
http://cUBbltAt.nbsbn.cn
http://hgIGLCFI.nbsbn.cn
http://gxQAlA2M.nbsbn.cn
http://www.dtcms.com/a/236321.html

相关文章:

  • Redis 持久化机制深度解析
  • 第9篇:数据库中间件的容错机制与高可用架构设计
  • UOS无法安装deb软件包
  • ​​Android 如何查看CPU架构?2025年主流架构有哪些?​
  • 本地主机部署开源企业云盘Seafile并实现外部访问
  • 开源之夏·西安电子科技大学站精彩回顾:OpenTiny开源技术下沉校园,点燃高校开发者技术热情
  • 自动驾驶系统研发系列—从LSS到BEVFormer:视觉BEV感知算法的演进与实战部署思考
  • 判断一个或者多个软件是否安装,如果没有则自动安装
  • 嵌入式里的时间魔法:RTC 与 BKP 深度拆解
  • 《MODEM HOST INTERFACE》,第6章,MHl register interface
  • VBA之Word应用第三章第十节:文档Document对象的方法(三)
  • R语言AI模型部署方案:精准离线运行详解
  • 机器学习监督学习实战五:六种算法对声呐回波信号进行分类
  • 【Linux shell】shell中的变量——构建脚本逻辑的基石
  • Linux(生产消费者模型/线程池)
  • TripGenie:畅游济南旅行规划助手:个人工作纪实(二十二)
  • Linux(13)——Ext系列文件系统
  • 1.5 Node.js 的 HTTP
  • 纳米AI搜索与百度AI搜、豆包的核心差异解析
  • Faiss向量数据库全面解析:从原理到实战
  • Linux(14)——库的制作与原理
  • ASTRA论文总结
  • 【Linux】系统部分——进程控制
  • npm安装electron下载太慢,导致报错
  • Spark 之 AQE
  • 关于脏读,幻读,可重复读的学习
  • SDC命令详解:使用set_port_fanout_number命令进行约束
  • Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(上)
  • pycharm 中文字体报错
  • PyCharm集成Conda环境