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

LeetCode移除元素

题目描述

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

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

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

解题思路

通过遍历数组,将不等于 val 的元素复制到数组的前面来实现原地修改数组。最后返回的 ans 变量就是不等于 val 的元素的数量。

代码

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

代码分析

  1. 初始化一个变量 ans 用来计数不等于 val 的元素。
  2. 遍历数组 nums 中的每个元素 num
  3. 如果当前元素 num 不等于 val,则将其复制到 nums 数组的 ans 索引处,并将 ans 增加 1。
  4. 遍历完成后,ans 就是数组中不等于 val 的元素的数量。
  5. 返回 ans

这个函数的时间复杂度是 O(n),其中 n 是数组 nums 的长度,因为它需要遍历整个数组一次。空间复杂度是 O(1)

nums 的其余元素和 nums 的大小并不重要,所以k 个元素后面的数据就是原来的数据, 不影响输出的正确性


http://www.mrgr.cn/news/22988.html

相关文章:

  • 【C++ Primer Plus习题】14.1
  • 【Linux】万字解读<进程控制>:创建&中止&等待&替换
  • Linux 用户和组的增删改查,用户切换及权限超详细解读
  • SAP 免费学习网站推荐
  • 【AI绘画】Midjourney后置指令--seed、--tile、--q、--chaos、--w、--no详解
  • 20240910 每日AI必读资讯
  • Iceberg与SparkSQL写操作整合
  • 电压跟随器的作用是什么?
  • Vulnhub靶场 DC-1
  • 机器学习特征分析
  • 线性代数 第七讲 二次型_标准型_规范型_坐标变换_合同_正定二次型详细讲解_重难点题型总结
  • java 自定义注解校验实体类属性
  • 离心萃取机废旧磷酸铁锂电池回收工艺流程
  • Hive任务优化参数整理
  • 基于C++网络编程入门学习(一)-- Linux环境下的C++程序编译与运行
  • pdf文件怎么编辑?7大常用的pdf在线编辑技巧,免费好用!
  • 开源模型应用落地-sherpa-onnx-AIGC应用探索(十)
  • 基于人工智能的实时交通监控系统
  • 监控-zabbix
  • 客户案例 | 使用 BigQuery 和 AutoML 消除电视行业的数据孤岛和分散