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

LeetCode 283 - 移动零

思路

使用双指针法,一次遍历完成原地修改。

  1. 慢指针 slow:指向下一个非零元素应该被放置的位置。
  2. 快指针 fast:遍历整个数组,寻找非零元素。

fast 遇到非零数时,将其值赋给 slow 指向的位置,然后 slow 前进。fast 始终前进。

遍历结束后,slow 指针左侧(不含 slow)都是排好序的非零元素。最后,将 slow 指针及之后的所有位置填充为 0 即可。

C++ 代码实现
class Solution {
public:void moveZeroes(vector<int>& nums) {int slow = 0;// 将所有非零元素移动到数组前面for (int fast = 0; fast < nums.size(); ++fast) {if (nums[fast] != 0) {nums[slow++] = nums[fast];}}// 将 slow 及其之后的位置填充为 0while (slow < nums.size()) {nums[slow++] = 0;}}
};
复杂度
  • 时间复杂度: O(n)fast 指针遍历数组一次。
  • 空间复杂度: O(1),原地操作,未使用额外空间。

http://www.dtcms.com/a/303759.html

相关文章:

  • CTF-Web学习笔记:服务端请求伪造(SSRF)篇
  • 单片机学习笔记.PWM
  • 第4章唯一ID生成器——4.5 美团点评开源方案Leaf
  • 医疗AI新基建:MCP与A2A协议的破局与前瞻
  • JVM 崩溃(Fatal Error)解决方法
  • 影刀RPA_初级课程_玩转影刀自动化_EXCEL操作自动化
  • 《C++初阶之STL》【list容器:详解 + 实现】
  • JSON解析
  • Spring IOC 基于Cglib实现含构造函数的类实例化策略
  • 循环神经网络——动手学深度学习7
  • 板凳-------Mysql cookbook学习 (十二--------7)
  • SpringBoot 的@Repository 等注解的底层实现原理
  • 智能体安全与可信AI:防护机制与伦理考量
  • SpringBoot之起步依赖
  • 【使用python中列表注意事项】
  • Windows使用Powershell自动安装SqlServer2025服务器与SSMS管理工具
  • 【自存用】mumu模拟器+mitmproxy配置
  • ADSP-21565的SigmaStudio图形化编程详解
  • Linux 完整删除 Systemd 服务的步骤
  • 递归、搜索与回溯算法核心思想解析
  • Agent常用搜索引擎Tavily使用学习
  • linux中简易云盘系统项目实战:基于 TCP协议的 Socket 通信、json数据交换、MD5文件区别与多用户文件管理实现
  • 配置daemon.json使得 Docker 容器能够使用服务器GPU【验证成功】
  • 界面控件Telerik UI for WPF 2025 Q2亮点 - 重要组件全新升级
  • 「源力觉醒 创作者计划」_文心大模型 4.5 多模态实测:开源加速 AI 普惠落地
  • VUE -- 基础知识讲解(一)
  • 从字符串中“薅出”最长子串:LeetCode 340 Swift 解法全解析
  • 分布式链路追踪详解
  • 如何用USRP捕获手机信号波形(中)手机/基站通信
  • Java面试宝典:MySQL8新特性底层原理