给定一个数组 nums
,编写一个函数将所有 0
移动到数组的末尾,同时保持非零元素的相对顺序。
请注意 ,必须在不复制数组的情况下原地对数组进行操作。
示例 1:
输入: nums =[0,1,0,3,12]
输出:[1,3,12,0,0]
示例 2:
输入: nums =[0]
输出:[0]
提示:
1 <= nums.length <= 104
-231 <= nums[i] <= 231 - 1
算法逻辑详解
- 双指针技巧:
- nonZeroIndex 指针用于标记下一个非零元素应该放置的位置
- i 指针用于遍历整个数组
- 第一次遍历(移动非零元素):
- 遍历数组中的每个元素
- 当遇到非零元素时,将其移动到 nonZeroIndex 位置,然后递增 nonZeroIndex
- 这样可以保持非零元素的相对顺序
- 第二次遍历(填充零):
- 完成第一次遍历后,所有非零元素已经按原顺序放置在数组前面
- 从 nonZeroIndex 开始,将数组剩余部分填充为0
优化说明
- 最小化操作次数:
- 每个元素最多只会被写入一次
- 避免了不必要的交换操作
- 零元素只在最后统一填充,减少了写操作
- 时间复杂度:
- O(n),其中n是数组长度
- 需要两次遍历,但总操作次数不超过2n
- 空间复杂度:
- O(1),完全是原地操作,不需要额外空间
这种方法相比于普通的交换法(每次发现非零元素就与前面位置交换)更高效,因为它减少了写操作的次数,特别是当数组中有大量零元素时效率更高。
class Solution {public void moveZeroes(int[] nums) {// 用于标记下一个非零元素应该放置的位置int nonZeroIndex = 0;// 第一次遍历:将所有非零元素移到数组前面for (int i = 0; i < nums.length; i++) {if (nums[i] != 0) {nums[nonZeroIndex++] = nums[i];}}// 第二次遍历:将剩余位置填充为0while (nonZeroIndex < nums.length) {nums[nonZeroIndex++] = 0;}} }
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/938228.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
全自动红外测油仪厂家推荐/国产红外测油仪品牌推荐/靠谱供应商采购推荐
在环境监测、石油化工、污水处理等诸多领域,全自动红外测油仪作为检测水中石油类和动植物油含量的关键设备,其精准度与效率直接影响着水质评估与污染治理效果。天津众科创谱科技有限公司凭借深厚的技术积累、过硬的产…
洛谷P4516 [JSOI2018] 潜入行动
朴素的设计 \(DP\),\(dp_{i,j,0/1,0/1}\) 表示 \(i\) 的子树选了 \(j\) 个点,当前选没有,当前被覆盖没有。
令人火大的转移方程(具体转移边界还请看代码):
\[\begin{align}&dp_{u,j,0,0} = \sum_{k=1}^{siz_…
Mysql1064,最常见的语法错误
MySQL 错误代码 1064 是最常见的语法错误,表示 SQL 语句存在语法问题,数据库无法解析。通常提示信息会包含具体错误位置(如 near ... at line N)。
常见原因及解决方法:SQL 语法错误(最常见)
拼写错误:关键字写…
一对一直播源码搭建:后来者的源码选择与专业研发的关键考量
在当今数字化社交蓬勃发展的时代,一对一直播平台正成为众多创业者关注的焦点。如果您正在考虑进入这一领域,但尚未决定是购买源码还是自主研发,亦或是正在寻找专业的开发团队,那么本文将为您提供全面而专业的指导。…
总氮检测仪靠谱供应商,总氮水质分析仪厂家推荐,总磷/氨氮/COD等仪器哪家好?
总氮作为衡量水体富营养化程度的关键指标,其精准检测对于水环境治理、工业废水排放管控及饮用水安全保障至关重要。在总氮水质分析仪的采购过程中,选择技术可靠、性能稳定且服务完善的产品与品牌,是确保检测工作高效…
多领域对话自动评估技术突破
介绍一种基于双向LSTM和注意力机制的新型对话评估模型,该模型在多领域对话中客户满意度预测准确率提升27%,能够泛化应用于不同对话管理系统,无需依赖特定对话行为特征。自动评估与语音助手的对话交互
随着与语音助手…
直面挑战:MySQL 千万级数据高性能优化实战指南
当开发中数据量从百万级跃升至千万级、甚至亿级时,这时候我们该怎么办呢?MySQL 的默认配置和简单的 CRUD 操作将不再适用。一次慢查询、一个锁等待都可能引发雪崩效应,导致整个系统响应缓慢。要驾驭海量数据,所以我…
泳池水检测仪厂家推荐,余氯检测仪哪个品牌好?COD水质/总氮/氨氮靠谱供应商
天津众科创谱科技有限公司 推荐指数:★★★★★ 品牌实力:作为国家级高新技术企业、水质快检标准制定单位,拥有强大的研发实力,研发团队由天津理工大学博士生导师朱连杰教授领衔,硕博比例超80%。累计获得40余项授…
CF2155 Codeforces Round 1056 (Div. 2) 游记(VP)
连蒙带猜拼尽全力 $4t$,表现分 $2000$。省流
连蒙带猜拼尽全力 \(4t\),表现分 \(2000\)。10.16
内含剧透,请vp后再来。
不是题解!!!!!!!
赛前
翘课了,结果刚开始 \(vp\) 就被发微信找过来,再也不敢翘这种点…
【隐语SecretFlow社区】万字长文解读构建可信数据空间相关标准
打开链接点亮社区Star,照亮技术的前进之路。每一个点赞,都是社区技术大佬前进的动力Github 地址: https://github.com/secretflow
在国家数据局统筹推动下,可信数据空间正成为国家数据基础设施的重要组成。它通过数…
Android四大组件之Servers、BroadcastReceiver、ContentProvider(内容提供者)
二、Service(服务)
1 什么是Service?
你可以把Service想象成一个"后台默默打工的工人"。它没有UI界面,默默地在后台干活,比如播放音乐、下载文件、处理网络请求等。即使你退出了App,Service也可以继续…
详细介绍:verilog中的FIR滤波器和自控中一阶低通滤波器的区别和共性
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
2025年智能装备与机器人国际学术会议(IER 2025)
2025 International Conference on Intelligent Equipment and Robotics(IER 2025)
2025年智能装备与机器人国际学术会议(IER 2025)
在这里看会议官网详情
2025年11月7-9日 | 中国陕西西安
截稿时间:见官网
收…
编程计算定投黄金的收益率
首先用Bing搜gold price,得到下图:然后用Gwenview, IrfanView等裁剪图片,得到下图:然后用程序找出红线上各点坐标。如果提取红色通道,由于白是(255,255,255),红是(255,0,0),就分不清了。所以我们提取绿色通道。…
客户管理软件是什么?深度解析及标杆产品推荐
在当今竞争激烈的商业环境中,客户关系管理(CRM)软件已成为企业提升销售效率、优化客户服务、驱动业务增长的核心引擎。但究竟什么是客户管理软件?如何选择最适合自己的CRM系统?本文将深入解析,并为您推荐好用的C…
openresty开发lua-resty-openssl之rsa公钥加密私钥解密 - liuxm
lua-resty-openssl之rsa公钥加密私钥解密1.创建文件 /usr/local/openresy/rsa_test.lualocal pkey = require "resty.openssl.pkey"
local str = require "resty.string"-- 生成密钥对
local fun…