尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

代码随想录数组章节(二)移除元素

代码随想录数组章节(二)移除元素
📅 发布时间:2026/7/19 3:20:18

题目:

给你一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度。

不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地修改输入数组。

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

核心思想:考察双指针用法,用两个索引值不同步长的变化来做处理。

双指针执行过程示意图:

flowchart TD A[开始] --> B[i=0, slot=0] B --> C{i < nums.size()?} C -- 是 --> D{nums[i] != val?} D -- 是 --> E[nums[slot] = nums[i]\nslot++] E --> F[i++] D -- 否 --> F F --> C C -- 否 --> G[返回 slot]

简要说明:

  • i(快指针):遍历整个数组,检查每个元素。
  • slot(慢指针):指向下一个可以放置非 val 元素的位置。
  • 当nums[i] != val时,将nums[i]复制到nums[slot],然后slot向前移动一位。
  • 当nums[i] == val时,仅i前进,slot保持不变。
  • 遍历结束后,slot即为新数组的长度,且nums[0..slot-1]均为非 val 元素。

针对本题:

int removeElement(vector<int>& nums, int val) { int slot = 0; // 存储变化后的数组索引 for (int i = 0; i < nums.size(); i++) { if (nums[i] != val) { nums[slot] = nums[i]; slot++; } } return slot; }

相关新闻

  • DWR技术解析:防水纺织品的核心工艺与应用
  • 帝舵中国官方售后服务中心|官方地址及售后热线权威信息公告(2026年7月更新) - 帝舵中国官方服务中心
  • 考虑构网型储能支撑能力的微电网优化调度策略(Matlab代码实现)

最新新闻

  • PDF扫描效果实战指南:3步将电子文档变身为专业扫描件
  • zlibrary电子书下载资源分享不限数量不限网络
  • vscode创建vue脚手架时出现无法将“vue”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次
  • 郑州这家考研机构,凭什么成管理类联考首选?
  • 时间管理实践:子弹笔记与数字标记系统
  • Android UI线程更新机制与多线程通信实践

日新闻

  • SaaS软件行业GEO实践:AI搜索时代的品牌可见性与获客新路径
  • 什么是PCTFE?医药高端包装的“防潮王牌“材料
  • 【JVM调优实战】16-可视化利器-JConsole-VisualVM-JMC

周新闻

  • SaaS软件行业GEO实践:AI搜索时代的品牌可见性与获客新路径
  • 什么是PCTFE?医药高端包装的“防潮王牌“材料
  • 【JVM调优实战】16-可视化利器-JConsole-VisualVM-JMC

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号