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

数组题解——移除元素​【LeetCode】

27. 移除元素

快慢指针法

算法思路

  • 使用双指针(fastslow)遍历数组。
    • fast指针遍历每一个元素。
    • slow指针指向下一个将被保留的位置。
  • 如果nums[fast] != val,就把nums[fast]赋值到nums[slow],并将slow向前移动一位。
  • 遍历结束后,slow的值就是新数组的长度,数组前slow个元素即为移除指定元素后的结果。

注意

  • 题目要求原地操作,不能使用额外数组。
  • 不关心原数组后面剩余的元素。
#快慢双指针法
class Solution:def removeElement(self, nums: List[int], val: int) -> int:fast = slow = 0size = len(nums)while fast < size:if nums[fast] != val:nums[slow] = nums[fast]slow += 1fast += 1return slow

时间复杂度

  • O(n),n为数组长度。每个元素最多被访问两次(一次被fast读,一次被slow写)。

空间复杂度

  • O(1),只用了常数级别的额外空间。

暴力法

算法思路

  • 用变量i遍历数组,l记录当前数组有效长度。
  • 每当nums[i] == val,就从i+1l-1的所有元素整体向前移动一位(覆盖掉nums[i])。
  • 有效长度l减1,i回退1(这样下一轮循环会检查移过来的新元素)。
  • 遍历直到i == l
#(版本二)暴力法
class Solution:def removeElement(self, nums: List[int], val: int) -> int:i, l = 0, len(nums)while i < l:if nums[i] == val: # 找到等于目标值的节点for j in range(i+1, l): # 移除该元素,并将后面元素向前平移nums[j - 1] = nums[j]l -= 1i -= 1i += 1return l

时间复杂度

  • 最坏情况下:每遇到一个等于val的元素,就要把后面所有元素向前平移一次。
  • 假设数组长度为n,且所有元素都等于val,每次移动n-1, n-2, ..., 1次,总操作次数为O(n^2)
  • 所以时间复杂度为O(n^2)

空间复杂度

  • 没有申请额外数组,只用了常数个变量。
  • 空间复杂度为O(1)
http://www.lqws.cn/news/504991.html

相关文章:

  • Windows驱动开发最新教程笔记2025(一)名词解释
  • Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
  • From Tranformer to Decoder ONLY
  • 云原生周刊:Argo CD v3.1 正式发布
  • PyEcharts教程(009):PyEcharts绘制水球图
  • 【HTTP】取消已发送的请求
  • Leaflet面试题200道
  • C++修炼:智能指针
  • 自然语言处理入门
  • centos7 rpm 包升级openssh至10.0版本
  • 解码成都芯谷金融中心文化科技产业园:文化+科技双轮驱动
  • 枫清科技受邀参加2025数据智能大会
  • 如何通过nvm切换本地node环境详情教程(已装过node.js更改成nvm)
  • Vue3+el-table-v2虚拟表格大数据量多选功能详细教程
  • 字节跳动开源了一款 Deep Research 项目
  • YOLO、VOC、COCO数据集格式
  • C++中的数学计算库Eigen
  • LT8311EX一款适用于笔记本电脑,扩展坞的usb2.0高速运转芯片,成对使用,延伸长度达120米
  • EXCEL中实用的一些手段——BOM汇总查询
  • 【Datawhale组队学习202506】YOLO-Master task04 YOLO典型网络模块
  • 桥头守望者
  • 《前端资源守卫者:SRI安全防护全解析》
  • LangChain4j之会话功能AiServices工具类的使用(系列二)
  • 【WCF】单例模式的线程安全缓存管理器实现,给你的WebApi加入缓存吧
  • 【DeepSeek实战】3、Ollama实战指南:LobeChat+多网关架构打造高可用大模型集群
  • 数据赋能(319)——安全与合规——数据安全可控
  • 吉林大学软件工程期末复习整理
  • 基于大模型预测的化脓性阑尾炎诊疗方案研究报告
  • MSTP技术解析:提升网络负载均衡
  • 解决移动端播放MP4黑屏问题,PC端正常的问题