蓝桥与力扣刷题(283 移动零)
题目:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
请注意 ,必须在不复制数组的情况下原地对数组进行操作。
示例 1:
输入: nums =[0,1,0,3,12]输出:[1,3,12,0,0]
示例 2:
输入: nums =[0]输出:[0第一种解题方法+代码:
第一种方法时间复杂度为O(n)。
代码:
class Solution {public void moveZeroes(int[] nums) {/*解题思路:双指针遍历数组1.使用一个指针 i 遍历数组 nums。2.使用另一个指针 j 记录非零元素应该放置的位置。3.当遇到非零元素时,将其移动到 j 指向的位置,并将 j 向前移动。4.遍历完成后,从 j 开始到数组末尾的位置全部填充 0。*///记录非0元素存放的位置int j = 0;//遍历数组for(int i = 0;i<nums.length;i++){if(nums[i] != 0){nums[j] = nums[i];j++;}}//填充0while(j<nums.length){nums[j] = 0;j++;}}
}
第二种解题方法+代码:

代码:
class Solution {public void moveZeroes(int[] nums) {/*解题思路:类似冒泡排序遍历数组nums,查找到0元素和非0元素时,交换它们的位置,将0元素向后移,一直到0元素都在数组的末尾*///嵌套for循环遍历numsfor(int i = 0;i<nums.length;i++){for(int j = 0;j<nums.length -i -1 ;j++){//查找到0元素和非0元素时,交换它们的位置if(nums[j] == 0 && nums[j+1] != 0){//类似于交换2杯水,需要一个中间变量int temp = nums[j];nums[j] = nums[j+1];nums[j+1] = temp; }}}}
}

第二种解题方法效率比较低,需要花费的时间久(嵌套for循环的时间复杂度为O(n^2))。
总结:个人认为双指针遍历循环更简单高效,时间空间复杂度更小,因此个人更加推荐第一种解题方法。第二种方法类似于冒泡排序,在这篇博客中提供一种解题思路。继续加油~
相关文章:
蓝桥与力扣刷题(283 移动零)
题目:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0]示例 2: 输入: …...
每日学习30分轻松掌握CursorAI:Cursor AI自然语言编程入门
Cursor AI自然语言编程入门 1. 自然语言编程概述 自然语言编程是一种革命性的编程方式,让开发者能够使用日常语言描述需求,由AI将其转换为可执行的代码。让我们通过系统化的学习来掌握这项技能。 2. 自然语言编程基础 2.1 工作原理流程图 2.2 指令模…...
Ubuntu22.04 离线安装:gcc、make、dkms、build-essential
挂载启动U盘 查看U盘对应的设备名称 sudo fdisk -l 1 # 以下就是需要挂载的U盘 Disk /dev/sdc: 14.9 GiB, 15938355200 bytes, 31129600 sectors Units: sectors of 1 * 512 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): …...
【竞技宝】CS2:HLTV2024选手排名TOP4-NiKo
北京时间2025年1月11日,HLTV年度选手排名正在持续公布中,今日凌晨正式公布了今年的TOP4选手为G2(目前已转为至Falcons)战队的NiKo。 选手简介 NiKo是一名来自波黑的CS职业选手,现年26岁。作为DOTA2饱负盛名的职业选手,NiKo在CS1.6时代就已经开始征战职业赛场。2012年,年仅15岁…...
Kali系统(Debian 10.3) 遇到的问题
目录 问题一:非问题 kali 基础官网与安装 问题二: 问题三: Kali系统 MySQL问题Cant connect to local MySQL server through socket /run/mysqld/mysqld.sock (2) 问题四:重新安装MySQL 也就是MariaDB(MariaDB 含 MySQL相关…...
【2025最新计算机毕业设计】基于SpringBoot+Vue奶茶点单系统(高质量源码,提供文档,免费部署到本地)
作者简介:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容:🌟Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…...
洛谷 P1873 [COCI 2011/2012 #5] EKO / 砍树 c语言
题目: P1873 [COCI 2011/2012 #5] EKO / 砍树 - 洛谷 | 计算机科学教育新生态 题目描述 伐木工人 Mirko 需要砍 M 米长的木材。对 Mirko 来说这是很简单的工作,因为他有一个漂亮的新伐木机,可以如野火一般砍伐森林。不过,Mirko…...
【神经网络中的激活函数如何选择?】
在神经网络中,激活函数的选择对于模型的性能和学习效率至关重要。以下是一些关于如何选择激活函数的建议: 一、隐藏层中的激活函数选择 ReLU及其变体: ReLU(Rectified Linear Unit,修正线性单元)ÿ…...
服务器多节点 Grafana、Prometheus 和 Node-Exporter Docker版本部署指南
要在多台服务器上部署 Grafana、Prometheus 和 Node-Exporter,并且其中一台服务器专门用于 Grafana 和 Prometheus 的部署 1. 准备工作 服务器信息: Server 1:用于部署 Grafana 和 Prometheus。 Server 2-n:用于部署 Node-Export…...
<C++学习>C++ Boost 算法集合操作教程
C Boost 算法集合操作教程 Boost 提供了一些非常强大的算法库,用于对集合进行高效的操作。这些集合算法库主要提供了便捷的接口,支持常见的集合运算(如并集、交集、差集等)、排列组合和更高级的容器操作。 1. Boost 算法库简介 …...
Jaeger UI使用、采集应用API排除特定路径
Jaeger使用 注: Jaeger服务端版本为:jaegertracing/all-in-one-1.6.0 OpenTracing版本为:0.33.0,最后一个版本,停留在May 06, 2019。最好升级到OpenTelemetry。 Jaeger客户端版本为:jaeger-client-1.3.2。…...
设计一个利用事务特性可以阻塞线程的排他锁,并且通过注解和 AOP 来实现
设计思路: 利用数据库表记录锁标识:通过唯一标识符(如方法名 参数),我们可以在数据库中插入一条记录,表示当前方法正在执行。这条记录需要记录插入时间。 注解:通过注解标识哪些方法需要加锁&a…...
【2024年华为OD机试】 (A卷,100分)- 对称美学(Java JS PythonC/C++)
一、问题描述 题目描述 对称就是最大的美学,现有一道关于对称字符串的美学。已知: 第1个字符串:R第2个字符串:BR第3个字符串:RBBR第4个字符串:BRRBRBBR第5个字符串:RBBRBRRBBRRBRBBR 相信你…...
【教程】数据可视化处理之2024年各省GDP排名预测!
过去的一年里,我国的综合实力显著提升,在新能源汽车、新一代战机、两栖攻击舰、航空航天、芯片电子、装备制造等领域位居全球前列。虽然全国各省市全年的经济数据公布还需要一段时间,但各地的工业发展数据,财政收入数据已大概揭晓…...
Java 将RTF文档转换为Word、PDF、HTML、图片
RTF文档因其跨平台兼容性而广泛使用,但有时在不同的应用场景可能需要特定的文档格式。例如,Word文档适合编辑和协作,PDF文档适合打印和分发,HTML文档适合在线展示,图片格式则适合社交媒体分享。因此我们可能会需要将RT…...
深度学习的原理和应用
一、深度学习的原理 深度学习是机器学习领域的一个重要分支,其原理基于多层神经网络结构和优化算法。以下是深度学习的核心原理: 多层神经网络结构:深度学习模型通常由多层神经元组成,这些神经元通过权重和偏置相互连接。输入数据…...
CAPL语法基础
CAPL语法基础 目录 CAPL语法基础1. 引言2. 数据类型、变量与常量2.1 数据类型2.2 变量2.3 常量2.4 案例1:使用变量和常量计算圆的面积 3. 运算符与表达式3.1 算术运算符3.2 关系运算符3.3 逻辑运算符3.4 位运算符3.5 案例2:使用运算符实现简单的逻辑判断…...
安卓studio生成apk步骤
在写完app之后虽然能在真机上运行 但是在文件夹中找不到相应的apk ,注意!!!安卓 studio中可以自动生动生成 apk 下面是生成步骤: 步骤1:build ->make project 步骤2:build ->Generate si…...
Azure主机windows2008就地升级十步
Azure上云主机的windows2008系统需要进行就地升级。 按着微软的升级路径:win2008-->win2012-->win2016-->win2022 第一步:创建快照备份,防止升级失败第二步:升级托管磁盘,在VM管理的地方将磁盘升级成托管磁盘…...
解锁 C# 与 LiteDB 嵌入式 NoSQL 数据库
一、开篇:邂逅 C# 与 LiteDB 新世界 在当今的软件开发领域,数据管理如同建筑的基石,而选择一款合适的数据库则是项目成功与否的关键因素之一。对于 C# 开发者来说,面对琳琅满目的数据库选项,如何抉择常常令人头疼。今…...
MelonLoader终极指南:7个步骤掌握Unity游戏模组加载器的完整教程
MelonLoader终极指南:7个步骤掌握Unity游戏模组加载器的完整教程 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader Me…...
告别FTP客户端工具:手把手教你用Qt写一个带进度条的FTP上传器
用Qt打造企业级FTP上传模块:从进度监控到断点续传实战 在工业自动化、医疗影像传输等专业领域,文件传输的可靠性和可视化程度直接影响用户体验。传统FTP客户端往往功能单一,无法与企业自有系统深度集成。本文将带你用Qt的QNetworkAccessManag…...
2025届毕业生推荐的AI论文方案推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 身为前沿那种 AI 工具的 DeepSeek,能够明显提高学术论文写作的效率。于文献综述这…...
从零到集群:基于Rocky Linux ARM64的虚拟化平台构建与自动化部署实战
1. 环境准备与基础配置 第一次接触ARM64架构的虚拟化平台搭建时,我踩过不少坑。不同于常见的x86环境,Rocky Linux ARM64在驱动支持和软件生态上有其特殊性。我们先从最基础的物理服务器配置说起。 假设你面前是一台刚拆封的ARM架构服务器,我…...
万象视界灵坛部署案例:边缘设备(Jetson Orin)轻量化CLIP推理部署
万象视界灵坛部署案例:边缘设备(Jetson Orin)轻量化CLIP推理部署 1. 项目概述 万象视界灵坛(Omni-Vision Sanctuary)是一款基于OpenAI CLIP模型的高级多模态智能感知平台。该平台通过创新的像素风格界面设计…...
2026届最火的六大AI辅助论文平台实测分析
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 基于自然语言处理技术的智能工具是AI写作软件,它能够辅助用户快速生成各类不同的…...
BilibiliDown:基于Java的B站视频下载技术方案与实现解析
BilibiliDown:基于Java的B站视频下载技术方案与实现解析 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors…...
高效管理Git仓库:彻底排除node_modules的实用指南
1. 为什么必须排除node_modules文件夹 每次新建Node.js项目时,npm或yarn都会自动生成node_modules目录来存放依赖包。这个文件夹通常包含成千上万个文件,比如一个基础Vue项目就可能超过200MB。我曾见过一个企业级项目的node_modules膨胀到1.2GBÿ…...
Zebu仿真加速实战:从编译到覆盖率的芯片验证效率提升指南
1. Zebu仿真加速环境配置实战 第一次接触Zebu仿真加速器时,我被它复杂的编译环境折腾得够呛。记得有次项目紧急交付,光是解决编译问题就耗了两天。后来才发现,很多问题其实都有规律可循。 1.1 跨平台编译的坑与解决方案 最让人头疼的就是从…...
从收音机到WiFi:LC并联谐振电路在实际通信系统里是怎么用的?
从矿石收音机到5G基站:LC并联谐振电路的百年进化史 当你拧动老式收音机的调谐旋钮时,金属指针在刻度盘上滑过不同电台的频率标记,耳机里传来忽大忽小的静电噪声,直到某个瞬间——声音突然清晰起来。这个看似简单的动作背后&#x…...
