中国排建设银行悦生活网站中国品牌装修公司排名

张小明 2026/3/12 10:01:15
中国排建设银行悦生活网站,中国品牌装修公司排名,北京网站制作设计推广公司,网站建设hyioi一、方法一#xff1a;把nums当作栈。用一个栈记录非零元素。1.思路#xff1a;#xff08;1#xff09;以示例1为例#xff0c;nums [0,1,0,3,12]#xff0c;判断过程如下表所示。#xff08;2#xff09;最后#xff0c;再在栈的末尾添加两个零#xff0c;即为答案…一、方法一把nums当作栈。用一个栈记录非零元素。1.思路1以示例1为例nums [0,1,0,3,12]判断过程如下表所示。2最后再在栈的末尾添加两个零即为答案[1,3,12,0,0]。3为了做到O(1)的空间复杂度可以直接把nums当作栈用一个变量StackSize表示栈的大小初始值为0。4入栈就是把nums[StackSize]置为nums[i]同时把StackSize加1。5最后把nums中的下标从StackSize到n - 1的数都置为0。2.复杂度分析1时间复杂度O(n)其中n是nums的长度。2空间复杂度O(1)。附代码class Solution { public void moveZeroes(int[] nums) { int stackSize 0; for(int x : nums){ if(x ! 0){ //先赋值再加1 nums[stackSize] x; } } //Arrays.fill是前闭后开区间 //从索引stackSize开始包含到索引nums.length结束不包含将元素置为0 Arrays.fill(nums,stackSize,nums.length,0); } }二、方法二双指针 交换元素。1.优势方法一在最坏的情况下nums全为0需要遍历nums两次而本方法只需要一次遍历。2.核心思路1把0视作空位把所有非0元素移动到数组左边的空位上并保证非0元素的顺序不变。2举例如nums [0,0,1,2]把1放到最左边的空位上数组就变成了[1,0,0,2]。注意1移动过去后在原来1的位置又产生了一个新的空位。也就是说交换了nums[0] 0和nums[2] 1这两个数。3为了保证非0元素的顺序不变需要维护最左边的空位的位置即下标。3.具体思路1从左到右遍历nums[i]。2同时维护另一个下标i0初始值为0并保证下标区间[i0,i - 1]都是空位且i0指向最左边的空位。3每次遇到nums[i] ! 0的情况就把nums[i]移动到最左边的空位上也就是交换nums[i]和nums[i0]。交换后把i0和i都加1从而使【[i0,i - 1]都是空位】这一性质仍然成立。4如果nums[i] 0无需交换只把i加1。4.举例示例1的nums [0,1,0,3,12]计算过程如下所示下划线表示交换的两个数5.由于每次操作后[i0,i - 1]对应的元素值全为0这一性质始终成立所以nums遍历结束后i n[i0,n - 1]对应的元素值全为0且[0i0 - 1]都是交换过去的非0元素这样就满足了题目“将所有的0移动到数组的末尾”的要求。6.复杂度分析1时间复杂度O(n)其中n是nums的长度。2空间复杂度O(1)。附代码class Solution { public void moveZeroes(int[] nums) { int i0 0; for(int i 0;i nums.length;i){ //i用来找第一个非0元素并与i0交换位置 //如果i指向的元素为0i继续向后找 //如果i指向的元素非0i指向的元素就会和i0交换然后i0,因此i0左边的元素都是非0元素 //i0指向下一个非0元素应该存放的位置i0左边的元素都是已经整理好的非0元素i0和i之间的元素都是0 if(nums[i] ! 0){ //交换nums[i]和nums[i0] int tmp nums[i]; nums[i] nums[i0]; nums[i0] tmp; i0; } } } }
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

php建设网站所用开发软件福州做公司网站

心电信号ECG去噪,Matlab程序,使用低通滤波和小波分解结合。 先去除高于80Hz的高频噪声,再去除高于50Hz的噪声和工频干扰等,最后去除基线漂移。 具体工作如下: 1、读取一段ECG信号,采样率为200Hz&#xff0c…

张小明 2026/3/5 4:12:48 网站建设

seo网站图片优化广州建设工程造价管理站网站

Figma中文界面终极指南:3分钟快速安装教程 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma的英文界面而烦恼吗?FigmaCN中文插件专为国内设计师量身打…

张小明 2026/3/5 4:12:48 网站建设

网站规划的缩略图太原谁家网站做的好

Visual C运行库智能修复工具:彻底解决软件依赖问题 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 当你满怀期待地打开新下载的游戏或专业软件&#…

张小明 2026/3/5 4:12:45 网站建设

小公司网站建设深圳网站设计 三把火科技

硬件安全挑战解析 一、恶意硬件威胁 1.1 常见恶意硬件类型 后门与陷阱门 :后门或陷阱门可让未经授权的用户访问系统,它们可能在系统开发阶段或系统更新安装过程中被植入。 杀伤开关 :这是一种颠覆性的手段,攻击者利用它可禁用硬件或软件功能。杀伤开关能在系统开发或…

张小明 2026/3/5 4:12:50 网站建设

php 自动做网站点击量网站开发程序开发

每日更新教程,评论区答疑解惑,小白也能变大神!" 目录 脑电传感技术:从基础原理到前沿应用的深度解析 摘要 第一章:脑电信号的物理本质与检测挑战 1.1 脑电信号的基本原理 1.2 脑电检测的核心挑战 第二章&am…

张小明 2026/3/5 4:12:51 网站建设

建企业网站怎么收费wordpress 导航菜单 居中

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 使用AI生成一个vmtools自动化脚本,功能包括虚拟机快照管理、网络配置自动化和资源监控。要求脚本支持VMware和VirtualBox平台,能够根据输入参数动态调整配置…

张小明 2026/3/5 4:12:51 网站建设