news 2026/4/25 17:42:16

算法训练营第二天| 27.移除元素

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
算法训练营第二天| 27.移除元素

目录

视频讲解:B站讲解视频

移除元素算法概述

算法核心思想

算法实现步骤

看到题目时的第一想法

实现过程中遇到的困难

代码实现与分析

今日收获心得

题目链接:LeetCode 27. 移除元素

视频讲解:B站讲解视频
移除元素算法概述

移除元素是一种常见的数组操作,核心思想是通过双指针技术原地修改数组。它通过覆盖或交换元素来移除特定值,同时保持剩余元素的相对顺序。

适用场景:需要原地修改数组且不关心新长度之后元素的场景。

时间复杂度:O(n)

空间复杂度:O(1)

算法核心思想

利用快慢指针技术,快指针遍历数组,慢指针标记有效元素位置:

  • 快指针发现非目标值 → 复制到慢指针位置
  • 快指针发现目标值 → 跳过不处理 通过这种方式,所有非目标值都会被保留在数组前部。
算法实现步骤

初始化慢指针 left = 0 快指针 right 从 0 开始遍历整个数组 当 nums[right] 不等于目标值时,将其复制到 nums[left] 位置 递增 left 指针,表示已处理一个有效元素 遍历结束后,left 即为新数组长度

看到题目时的第一想法

双指针技术是处理数组原地修改的利器 需要明确指针移动条件和赋值时机 要特别注意空数组和全为目标值的边界情况 保持元素顺序的要求会影响指针移动策略

实现过程中遇到的困难

初始时不确定是否应该保留元素顺序 快慢指针的移动条件需要仔细推敲 处理全为目标值的数组时返回值容易出错 测试用例中考虑不足,如空数组和单元素数组

代码实现与分析
class Solution { public: int removeElement(vector<int>& nums, int val) { int left = 0; for (int right = 0; right < nums.size(); right++) { if (nums[right] != val) { nums[left] = nums[right]; left++; } } return left; } };
今日收获心得

双指针技术的精妙之处在于用空间换时间,通过一次遍历完成筛选和移动 实现时发现边界条件的重要性,特别是空数组和全目标值数组的处理 算法看似简单,但需要精确控制指针移动和赋值时机 通过这道题深刻理解了原地修改数组的技术要点,对指针操作有了更深认识

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 17:40:59

别把“固废”当垃圾:固体废物处理工程系统逻辑与落地路径全解析

一、什么是固体废弃物处理工程&#xff1f;固体废弃物处理工程&#xff0c;是指针对工业生产、城市运行、商业活动以及公共服务过程中产生的各类固体废弃物&#xff0c;通过收集、分类、转运、贮存、减量化、资源化、无害化处理等手段进行系统治理的一整套工程。这里所说的“固…

作者头像 李华
网站建设 2026/4/24 0:08:52

音乐自由革命:用这个免费工具终结你的平台切换烦恼 [特殊字符]

音乐自由革命&#xff1a;用这个免费工具终结你的平台切换烦恼 &#x1f3b5; 【免费下载链接】music-api Music API 项目地址: https://gitcode.com/gh_mirrors/mu/music-api 你是否厌倦了在不同音乐App之间来回切换&#xff1f;今天我要分享一个能让你彻底告别平台限制…

作者头像 李华
网站建设 2026/4/24 0:10:42

深度解密ncmdumpGUI:5个高效解密网易云音乐NCM格式的实战技巧

深度解密ncmdumpGUI&#xff1a;5个高效解密网易云音乐NCM格式的实战技巧 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI ncmdumpGUI是一款专为Windows平台设计…

作者头像 李华
网站建设 2026/4/24 0:52:02

3步解锁缠论分析:让通达信K线图自动说话的秘密武器

3步解锁缠论分析&#xff1a;让通达信K线图自动说话的秘密武器 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 还在为复杂的缠论分析发愁吗&#xff1f;ChanlunX缠论插件就是你的专属K线翻译官&#xff0…

作者头像 李华
网站建设 2026/4/24 2:07:38

ViGEmBus内核驱动深度剖析:Windows虚拟游戏手柄的技术实现密码

ViGEmBus内核驱动深度剖析&#xff1a;Windows虚拟游戏手柄的技术实现密码 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 当开发者面临游戏控制器兼容性难题…

作者头像 李华