03、移动零:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

news2024/11/25 18:55:33

文章目录

  • 1、题目描述
    • 1.1 移动所有零至数组末尾
    • 1.2 示例
  • 2、解题思路
    • 2.1 思路讲解
    • 2.2 动画演示( 待补充)
    • 2.3 复杂度分析
  • 3、答案
    • 3.1 Java 代码
    • 3.2 运行结果
  • 4、视频讲解( 待补充)

1、题目描述

1.1 移动所有零至数组末尾

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作

1.2 示例

示例 1

输入: nums = [0,1,0,3,12]
输出: [1,3,12,0,0]

示例 2

输入: nums = [0]
输出: [0]

2、解题思路

2.1 思路讲解

  • index变量来记录当前处理到了第几个数字
  • 如果当前数值是 0,进入空循环,不做任何处理
  • 每次处理完一个数字,index +1
  • 末尾补零
  • 注意题目中要求不能拷贝数组

2.2 动画演示( 待补充)

2.3 复杂度分析

  • 时间复杂度 O ( n ) O(n) O(n)

  • 空间复杂度 O ( 1 ) O(1) O(1)

3、答案

3.1 Java 代码

public class _03_移动零 {
 
    public static void main(String[] args) {
        System.out.println(Arrays.toString(moveZeroes(new int[]{0, 1, 0, 3, 12})));
        System.out.println(Arrays.toString(moveZeroes(new int[]{0})));
    }

    private static int[] moveZeroes(int[] nums) {
        int index = 0;   //用来记录当前处理到了第几个数字
        for (int i = 0; i < nums.length; i++) {
            // 如果当前数值是 0,进入空循环,不做任何处理
            if (nums[i] != 0) {
                nums[index] = nums[i];
                index++;    //每次处理完一个数字,index +1
            }
        }
        for (int i = index; i < nums.length; i++) {
            nums[i] = 0;
        }
        return nums;
    }
}


3.2 运行结果

在这里插入图片描述

4、视频讲解( 待补充)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1162721.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nodelist 与 HTMLCollection 的区别

原地址 https://cloud.tencent.com/developer/article/2013289 节点与元素 根据 W3C 的 HTML DOM 标准&#xff0c;HTML 文档中的所有内容都是节点&#xff1a; 整个文档是一个文档节点每个 HTML 元素是元素节点HTML 元素内的文本是文本节点每个 HTML 属性是属性节点注释是注…

Linux安装nodejs指定版本

压缩包官网地址&#xff0c;按需下载 https://nodejs.org/dist/ 一、下载 wget https://nodejs.org/dist/v16.16.0/node-v16.16.0-linux-x64.tar.xz 二、解压 tar -xf node-v16.16.0-linux-x64.tar.xz 三、配置 #配置node /path/to/node-v16.16.0-linux-x64为解压目录 如…

掌控你的Mac性能:System Dashboard Pro,一款专业的系统监视器

作为Mac用户&#xff0c;你是否曾经想要更好地了解你的电脑性能&#xff0c;以便优化其运行&#xff1f;是否想要实时监控系统状态&#xff0c;以便及时发现并解决问题&#xff1f;如果你有这样的需求&#xff0c;那么System Dashboard Pro就是你的不二之选。 System Dashboar…

Lodash 真的死了吗?Lodash 5 在哪里?

与一些传言相反&#xff0c;Lodash依然活跃&#xff0c;并正在迈向Lodash 5的发布&#xff01; Lodash 是那些为 JavaScript 提供便利功能的实用程序库之一&#xff0c;它使编程变得更加轻松。许多开发者使用它来简化对象和数组的处理。 它也是一个像 Moment.js那样被捕获得措手…

2023年汉字小达人区级比赛出结果了,快来收奖状以及市级备考建议

盼望着&#xff0c;盼望着&#xff0c;盼望着... 终于等到了2023年第十届上海市小学生汉字小达人区级比赛的结果。 今天上午&#xff0c;汉字小达人主办方在中文自修杂志社官网公布了两个通知&#xff1a;“中文自修杯”第十届上海市小学生 “美丽汉字小达人”活动区级活动“…

《Webpack 5 基础配置》- 禁止在出现编译错误或警告时,覆盖浏览器全屏显示

Webpack5 overlay 配置地址默认编译错误或警告为 true&#xff0c;即浏览器全屏显示&#xff1b;overlay 属性可以是 boolean 型&#xff0c;也可是 object 类型&#xff1b;还有其它设置说明&#xff0c;详见上述官网地址&#xff1b; module.exports {devServer: {client: {…

PLSql调试问题解析

最近因为工作问题需要弄一个Orale数据库导出Dmp文件&#xff0c;直接命令行执行很麻烦&#xff0c;于是用PLSql来操作&#xff0c;在配置链接的过程中遇到很多问题&#xff0c;下面把问题及解决方法贴在这里记录一下 1、ORA-12504&#xff1a;TNS&#xff1a;监听程序在CONNEC…

前端工程师的摸鱼日常(20)

今年一整年状态都不怎么好&#xff0c;所以别说摸鱼文了&#xff0c;其他技术文章都没写几篇&#xff0c;发生的事情有点多&#xff0c;无暇顾及这些&#xff0c;当然最主要的一个原因还是因为懒&#xff01; 有很多时候我都觉得人的大脑是单线程的&#xff0c;在处理一件事情…

大厂信息泄露-漏洞复现

目录 大唐电信AC简介 资产收集 漏洞复现 修复建议 免费领取安全学习资料包&#xff01;&#xff08;私聊进群一起学习&#xff0c;共同进步&#xff09;​编辑 大唐电信AC简介 大唐电信科技股份有限公司是电信科学技术研究院&#xff08;大唐电信科技产业集团&#xff09…

ffmpeg 截取命令

从00:00:03.500开始截取往后长度到结尾的mp3音频&#xff08;这个更有用&#xff0c;测试好用&#xff09; ffmpeg -i d:/c.mp3 -ss 00:00:03.500 d:/output.mp3 将两个音频合并成一个音频&#xff08;测试好用&#xff09; ffmpeg -i "concat:d:/c.mp3|d:/output.mp3&…

排水车发动机拆装vr虚拟训练仿真系统提高学员技能水平

VR吸污车操作实训系统是一种利用vr虚拟现实技术模拟吸污车操作环境的培训工具&#xff0c;受训员工通过佩戴VR头显设备&#xff0c;进入一个虚拟的环境&#xff0c;模拟实际的吸污车工作场景并且模拟交互操作。不仅可以避免真实环境中的安全风险&#xff0c;还可以更加灵活地进…

基于ubuntu20.04 环境跑通LIO_SAM重定位

link 序言 作为LOAM重要的一个变种&#xff0c;LIO_SAM基本上算是这个系列里面知识点最全面。这个软件框架包含了去畸变、特征点提取&#xff08;角点、平面点&#xff09;、前端、后端、回环&#xff0c;同时软件框架还融合了IMU信息&#xff0c;可以配置融合GPS信息。当然这种…

鲲鹏920(kylinV10)安装虚拟化工具kvm

目录 准备工作 安装 大致流程 具体步骤 安装 界面工具 virt-manager 创建虚拟机流程 点击创建虚拟机 可能出现的问题 问题1 问题2 问题3 准备工作 关闭防火墙 systemctl stop firewalld && systemctl disable firewalld 关闭selinux sed -i s/enforcing…

从0开始搭建一个APP:compose搬砖的一天

无论是从各个大佬的书籍还是blog,大的方向还是翻了一遍&#xff0c;个人感觉&#xff0c;compose 是UI解决方案这种定义和Android离得特别远&#xff0c;像Android 的应用端的大多数工作量还是在UI开发上&#xff0c;flutter 也差不多&#xff0c;结合Kotlin的开发经验&#xf…

统计学习方法 逻辑斯蒂回归与最大熵模型

文章目录 统计学习方法 逻辑斯蒂回归与最大熵模型逻辑斯蒂回归逻辑斯蒂分布二项逻辑斯蒂回归多项逻辑斯蒂回归 最大熵模型原理定义学习极大似然估计 统计学习方法 逻辑斯蒂回归与最大熵模型 学习李航的《统计学习方法》时&#xff0c;关于逻辑斯蒂回归与最大熵模型的笔记。 逻…

【1】2023版密评算分工具

0X01 前言 工具根据商用密码应用安全性评估量化评估规则&#xff08;2023年8月1日实施&#xff09;实现 0x02 工具功能介绍 给定D A K的打分结果&#xff0c;计算单个测评对象和测评单元得分。根据测评单元得分计算测评层面得分根据测评层面得分计算报告整体得分配置文件说明…

美国亚马逊站暖手宝、热袜子、加热器UL499安全审核测试

近很多客户过来咨询&#xff0c;亚马逊上有人投诉产品起火&#xff0c;亚马逊要求提供UL报告&#xff0c;怎么办?特别是电池产品&#xff0c;很多卖家不约而同的提出同样的问题。不要着急&#xff0c;我司已经处理过很多类似产品&#xff0c;为很多商家提供了相应的报告&#…

【每日OJ题 —— 876. 链表的中间结点(链表)】

每日OJ题 —— 876. 链表的中间结点&#xff08;链表&#xff09; 1.题目&#xff1a; 876. 链表的中间结点2.方法讲解2.1.解法2.1.1.图文解析2.1.2.代码实现2.1.3.提交结果展示 1.题目&#xff1a; 876. 链表的中间结点 2.方法讲解 2.1.解法 2.1.1.图文解析 题解思路&#x…

ks ios快手极速版、概念版、创作版sig sig3

风控&#xff1a; 快手除了正版下&#xff0c;还有极速版&#xff0c;概念版&#xff0c;创作版。 然而看了下概念版还是风控比正版要低的多~ 抓包&#xff1a; 对于快手的ios版本抓包很简单&#xff0c;直接vpn转发抓包方式即可&#xff0c;不可用代理抓包&#xff1b;这个…

一款优秀的低代码平台应具备哪些能力?

低代码开发平台是一种基于低代码概念而研发出来的产品&#xff0c;是指无代码或少量代码就可以快速生成应用程序的平台。这类平台通过拼装可重复使用的组件&#xff0c;使开发人员可以通过可视化的工作界面快速设计应用&#xff0c;以解决传统软件开发模式周期长、成本高的问题…