LeetCode:283. 移动零

283. 移动零

  • 1)题目
  • 2)代码
    • 方法一:两层for循环
    • 方法二:使用双指针
  • 3)结果
    • 方法一结果
    • 方法二结果

1)题目

给定一个数组 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

进阶:你能尽量减少完成的操作次数吗?

2)代码

方法一:两层for循环

public void moveZeroes(int[] nums) {
    if (nums.length == 1) return;
    for (int i = 0; i < nums.length; i++) {
        if (nums[i] == 0) {
            for (int j = i+1; j < nums.length; j++) {
                if (nums[j] != 0) {
                    nums[i] = nums[j];
                    nums[j] = 0;
                    break;
                }
            }
        }
    }
}

方法二:使用双指针

public void moveZeroes(int[] nums) {
    if (nums.length == 1) return;
    int left = 0,right = 1;

    while (right < nums.length) {
        if (nums[left] == 0) {
            if (nums[right] != 0) {
                nums[left] = nums[right];
                nums[right] = 0;
                left++;
            }
        } else {
            left++;
        }
        right++;
    }
}

3)结果

方法一结果

在这里插入图片描述

方法二结果

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计 | SpringBoot 房屋租赁网 房屋租赁平台(附源码)

1&#xff0c;绪论 1.1 背景调研 在房地产行业持续火热的当今环境下&#xff0c;房地产行业和互联网行业协同发展&#xff0c;互相促进融合已经成为一种趋势和潮流。本项目实现了在线房产平台的功能&#xff0c;多种技术的灵活运用使得项目具备很好的用户体验感。 这个项目的…

day24打卡

day24打卡 思路&#xff1a;画出决策树&#xff0c;暴力枚举。子集问题 决策树&#xff1a; 函数头&#xff1a;void dfs(int n, int k, int pos) 函数体&#xff1a; ​ 出口&#xff1a;全局变量count k 保存结果到全局变量ret中 ​ 子问题&#xff1a;从pos位置向后变…

Linux服务详解

如有错误或有补充&#xff0c;以及任何改进的意见&#xff0c;请在评论区留下您的高见&#xff0c;同时文中给出大部分命令的示例&#xff0c;即是您暂时无法在Linux中查看&#xff0c;您也可以知道各种操作的功能以及输出 如果觉得本文写的不错&#xff0c;不妨点个赞&#x…

C++ //练习 3.36 编写一段程序,比较两个数组是否相等。再写一段程序,比较两个vector对象是否相等。

C Primer&#xff08;第5版&#xff09; 练习 3.36 练习 3.36 编写一段程序&#xff0c;比较两个数组是否相等。再写一段程序&#xff0c;比较两个vector对象是否相等。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块 /******…

WordPress可以做企业官网吗?如何用wordpress建公司网站?

我们在国内看到很多个人博客网站都是使用WordPress搭建&#xff0c;但是企业官网的相对少一些&#xff0c;那么WordPress可以做企业官网吗&#xff1f;如何用wordpress建公司网站呢&#xff1f;下面boke112百科就跟大家简单说一下。 WordPress是一款免费开源的内容管理系统&am…

主机安全加固之-openssh版本升级

升级openssh之前&#xff0c;为了保证能正常通过工具连接主机&#xff0c;咱们开启telnet服务&#xff0c;通过telnet的方式登录主机 一&#xff1a;开启telnet服务 1.安装telnet服务 [rootlocalhost ~]# yum install –y telnet telnet-server xinetd2.修改telnet服务配置文…

Multisim14.0仿真(四十一)交通信号灯仿真设计

一、功能简介&#xff1a; 1&#xff09;、采用两片74LS192做减法计数器&#xff0c;实现倒计时功能。 2&#xff09;、采用DCD数码管显示时间。 3&#xff09;、采用4个TRAFFIC_LIGHT_SINGLE红绿灯 4&#xff09;、采用74LS160和74LS138实现对红绿灯的逻辑控制。 5&#xff09…

【cmu15445c++入门】(5)C++ 包装类(管理资源的类)

一、背景 c包装类 二、运行代码 // A C wrapper class is a class that manages a resource. A resource // could be memory, file sockets, or a network connection. Wrapper classes // often use the RAII (Resource Acquisition is Initialization) C // programming…

printf死翘翘

本来想把我的单片机玩一下&#xff0c;寄给在大学搞研究的一个朋友&#xff0c;但竟然挂在printf里面&#xff0c;大概知道是什么位置出问题&#xff0c;但是还想不清楚什么原因。 我先是在stc51单片机里面搞了串口&#xff0c;然后我想用串口重定向到printf做调试&#xff0c;…

深度学习实战70-数学教材智能问答MathGPT模型与题目latex的pdf生成技术

大家好,我是微学AI ,今天给大家介绍一下深度学习实战70-数学教材智能问答MathGPT模型与题目latex的pdf生成技术,本文利用MathGPT数学大模型实现的数学教材智能问答系统。该系统结合了自然语言处理和数学知识图谱,能够理解用户的数学问题,并提供准确的答案和解析,随时随地请…

Linux系统中的容器化技术

当谈到容器化技术时&#xff0c;Docker和Kubernetes是两个最为知名和广泛使用的工具。它们在Linux系统中发挥着重要的作用&#xff0c;为应用程序的部署、管理和扩展提供了强大的工具和框架。 首先&#xff0c;让我们来了解一下什么是容器化技术。容器化技术是一种虚拟化技术&a…

网络原理-TCP/IP(4)

TCP原理 滑动窗口 之前我们讲过了确认应答策略,对发送的每一个数据段,都要给一个ACK确认应答,收到ACK后再发送下一个数据段. 确认应答,超时重传,连接管理这样的特性都是为了保证可靠运输,但就是付出了传输效率(单位时间能传输数据的多少)的代价,因为确认应答机制导致了时间大…

基于 SpringBoot+Vue 的大学生租房系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

Linux 路由配置与使用

概念 路由信息用于指导数据包从源地址查找到目的地址传输路径的信息&#xff1b; 路由分类 根据路由信息的来源分为静态路由和动态路由 静态路由 由管理员手动配置的路由表项信息&#xff0c;根据路由形式的不同&#xff0c;静态路由又可细分为&#xff1a; 直连路由&#xf…

二叉树(1)

1 树概念及结构 1.1树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。 把它叫做树是因为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 有一个特殊的结点&a…

AI数字人训练数据集汇总

唇读&#xff08;Lip Reading&#xff09;&#xff0c;也称视觉语音识别&#xff08;Visual Speech Recognition&#xff09;&#xff0c;通过说话者口 型变化信息推断其所说的内容&#xff0c;旨在利用视觉信道信息补充听觉信道信息&#xff0c;在现实生活中有重要应用。例如&…

【文件上传WAF绕过】<?绕过、.htaccess木马、.php绕过

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏…

【MATLAB源码-第128期】基于matlab的雷达系统回波信号仿真,输出脉压,MTI,MTD等图像。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 ​雷达&#xff08;Radio Detection and Ranging&#xff09;是一种使用无线电波来探测和定位物体的系统。它的基本原理是发射无线电波&#xff0c;然后接收这些波从目标物体上反射回来的信号。通过分析这些反射波&#xff0…

Day 17------C语言收尾之链表的删除、位运算、预处理、宏定义

链表 空链表&#xff1a; 注意&#xff1a;函数不能返回局部变量的地址 操作&#xff1a; 1.创建空链表 2.头插 3.尾插 4.链表遍历 5.链表的长度 free&#xff1a;释放 删除&#xff1a; 头删 void popFront(struct Node *head) { //1.p指针变量指向首节点 //2.断…

人工智能深度学习发展历程-纪年录

前言 为了理解模型之间的改进关系、明确深度学习的发展目标、提高自身对模型的深度理解、贯彻爱与和平的理念。总之&#xff0c;我做了如下表格。 时间 重大突破 模型改进 详细信息 1847 SGD 随机梯度下降 1995 SVM 支持向量机 1982 RNN 循环神经网络&#xff0c;…