LeetCode 283.移动零(超简单讲解)
283.移动零
- 题目
- 示例
- 示例1
- 示例2
- 解题思路
- 快慢指针
- 实现设计
- 详细代码
题目
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
请注意 ,必须在不复制数组的情况下原地对数组进行操作。
示例
示例1
输入:nums = [0,1,0,3,12]
输出:[1,3,12,0,0]
示例2
输入:nums = [0]
输出:[0]
解题思路
快慢指针
- 题目要求我们将所有的零移动到数组末尾,其实等同于将所有非零元素移动到数组开头。我们可以将所有非零元素移动到数组开头,然后将之后的元素赋值为零。
- 我们可以定义两个指针,快指针和慢指针。快指针找非零元素,慢指针指向非零元素要换到的地方。
实现设计
- 快指针
fast和慢指针slow都初始化为0 - 用快指针
fast遍历数组,找到非零元素,将非零元素,放到慢指针slow所指向的位置,同时,慢指针slow后移。 - 当快指针
fast遍历数组结束,即证明所有非零元素都移动到了数组开头,此时慢指针slow指向非零元素的后一位,所以,我们只需要将慢指针slow到数组末尾的元素全部赋值为0即可
详细代码
class Solution {public void moveZeroes(int[] nums) {//快指针找非零元素int fast=0;//慢指针指向非零元素要换到的地方。int slow = 0;//遍历快指针fastwhile(fast<nums.length){if(nums[fast]!=0){//将非零元素放到slow指向的位置nums[slow]=nums[fast];slow++;}fast++;}//遍历结束,所有非零元素都在元素开头//slow指向非零元素后一位,将slow到最后的元素全部赋值为0for(int i=slow;i<nums.length;i++){nums[i]=0;}}
}
相关文章:
LeetCode 283.移动零(超简单讲解)
283.移动零 题目示例示例1示例2 解题思路快慢指针实现设计 详细代码 题目 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 示例1 …...
GIS原理及应用、地理坐标系与投影坐标系
文章目录 一、GIS定义1.1 地理信息系统1.2 建模1.3 相关教程1.4 GIS前沿方向 二、GIS数据格式2.1 矢量2.2 栅格2.3 矢量与栅格的区别 三、GIS数据组织3.1 抽象3.2 分层3.3 栅格与切片 四、坐标系4.1 坐标系简介4.2 大地坐标系GCS4.3 投影坐标系PCS4.4 投影变换 五、空间数据库与…...
用github镜像加速, --recursive还是去github站怎么处理?
小伙伴们大多碰到过github抽风的情况,时通时断,时快时慢,非常考验心情。 以前碰到连不上的时候,我大多就是在gitee和gitcode网站找一下镜像,找到后直接git clone 新地址即可。但是碰到 --recursive的时候就不行了&…...
ctfshow-web 151-170-文件上传
151. 我们首先想到就是上传一句话木马。但是看源代码限制了png。 (1)改前端代码。 这里是前端限制了上传文件类型,那我们就改一下就好了嘛,改成php。 这里直接修改不行,给大家推荐一篇简短文章,大家就会了(…...
【电源专题】开关转换器使能(EN)管脚的几种不同方式
我们的文章说到了很多与使能有关的电源案例和原理,如下所示: 【电源专题】案例:芯片规格书使能定义高电平最小阈值1.4V,那真的是到1.4V时才开始输出?_芯片的电流阀值-CSDN博客...
5G学习笔记之SNPN系列之ID和广播消息
目录 1. 概述 2. SNPN ID 3. SNPN广播消息 1. 概述 SNPN:Stand-alone Non-Public Network,独立的非公共网络,由NPN独立运营,不依赖与PLMN网络。 SNPN不支持的5GS特性: 与EPS交互 emergency services when the UE acce…...
Qt-Advanced-Docking-System配置及使用、心得
Qt-Advanced-Docking-System 1. Qt-Advanced-Docking-System描述2. 功能特点2.1. 灵活的停靠方式2.2. 嵌套停靠2.3. 自定义布局保存与恢复2.4. 外观和行为定制 3. 与Qt原生停靠系统的比较4. 使用场景4.1. 集成开发环境(IDE)4.2. 图形设计软件4.3. 数据分…...
【Bolt.new + PromptCoder】三分钟还原油管主页
【Bolt.new PromptCoder】三分钟还原油管主页 PromptCoder官网:PromptCoder Bolt官网:https://bolt.new/ Bolt 是什么? Bolt.new 是一个提供创建全栈网络应用服务的平台。它允许用户通过提示(Prompt)、运行&#x…...
影像组学+病理组学+深度学习人工智能应用
影像组学 基础学习内容: 特征提取:使用pyradiomics进行形状、纹理、小波变换等特征提取。特征筛选:应用ICC、相关系数、mRMR、Lasso等方法。建模:使用LR、SVM、RF、XGBoost、LightGBM等机器学习算法。模型评估:通过A…...
RK3568平台(基础篇)io命令支持
一.什么是io命令 “io” 命令通常用于显示 Linux 系统中的 I/O 统计信息。它提供了有关磁盘读写操作的详细信息,包括每个块设备的读写次数、读写扇区数、读写延迟等。io命令可以直接操作某个寄存器,用于查看设置某个GPIO 引脚配置了什么iomux。 二.io命令支持 RK平台要支持…...
Yolov8源码分析
1、目录介绍 主要目录ultralitics(重点) 1、assets目录 这个文件保存了YOLO历史上可以说是最经典的两张图片,供大家测试程序来使用的。 2、cfg 这个文件下面保存了我们的模型配置文件,cfg目录是项目配置的集中地,其…...
Python中的装饰器`@functools.lru_cache`:用法、来源与应用 (中英双语)
今天看到一段源码 https://github.com/google-research/google-research/blob/master/instruction_following_eval/instructions_util.py 如下,对其中使用的装饰器函数感到好奇,所以产生了这篇博客。 functools.lru_cache(maxsizeNone) def _get_sentenc…...
思维图(GoT):解锁大模型解决复杂问题的能力
今天分享的是苏黎世联邦理工学院、华沙理工大学和Cledar联合发表的一篇文章:思维图:用大语言模型解决复杂问题 论文题目:Graph of Thoughts: Solving Elaborate Problems with Large Language Models 论文链接:https://arxiv.or…...
使用winscp从windows访问Ubuntu进行文件传输
Ubuntu 系统上的准备工作 • 安装 SSH 服务器: 确保 Ubuntu 系统上已经安装了 SSH 服务器。如果没有安装,可以使用以下命令安装: sudo apt update sudo apt install openssh-server • 启动 SSH 服务: 确保 SSH 服务正在运行&a…...
Java全栈项目:实验室预约管理系统的设计与实现
一、项目介绍 实验室预约管理系统是一个基于Java全栈技术开发的Web应用系统,旨在提供便捷的实验室预约、管理和使用体验。本系统主要面向高校师生,实现实验室资源的智能化、信息化管理。 二、技术栈 前端技术 Vue.jsElement UIAxiosVue RouterVuex …...
使用 esrally race 测试 Elasticsearch 性能及 Kibana 可视化分析指南
前言: 在对 Elasticsearch 集群进行性能测试与调优的过程中,esrally 是官方推荐的测试工具。通过 esrally race 命令,我们可以模拟各种查询与索引负载,对集群进行基准测试。然而,仅看 esrally 的终端输出并不直观&…...
OpenAI 第七日 推出了一项新功能——ChatGPT的“Projects”
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
【小白51单片机专用教程】protues仿真AT89C51入门
课程特点 无需开发板0基础教学软件硬件双修辅助入门 本课程面对纯小白,因此会对各个新出现的知识点在实例基础上进行详细讲解,有相关知识的可以直接跳过。课程涉及protues基本操作、原理图设计、数电模电、kell使用、C语言基本内容,所有涉及…...
正则表达式——元字符匹配(单字符)
单字符匹配: ###注意事项:前面要加r:如(re.findall(r\w,字符串名)) #. :匹配任意一个字符 (.本身通过\.匹配) # [ ]: 匹配[ ]中的字符 # \d: 匹配数字 # \D: 匹配非数字 # \s: 匹配空白(空格) # \S:匹配非空白 # \w: 匹配单词字符(a…...
快速在远程服务器执行命令、批量在多个服务器执行命令(基于sshpass的自定义脚本fastsh)
在日常服务器操作中,很多时候我们需要同时操作多个服务器。特别对于那些每个服务器都需要操作相同命令的场景,不断的切换命令会话窗口会比较麻烦。基于此,编写了本文中的 fastsh 脚本用于轻度解决这种问题,提高一定的便利性。 使…...
KOReader终极指南:如何打造你的完美电子墨水屏阅读体验
KOReader终极指南:如何打造你的完美电子墨水屏阅读体验 【免费下载链接】koreader An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices 项目地址: https:…...
UI设计入门指南——Figma新手必备操作全解析
1. Figma入门:从零到第一个设计稿 第一次打开Figma时,很多人会被满屏的英文界面和复杂工具栏吓到。其实我刚接触时也一样,但现在回头看,掌握基础操作只需要30分钟。Figma作为目前最流行的UI设计工具,最大的优势就是零门…...
我的杭州亲子旅游线路总结(坐船版)
我的杭州亲子旅游线路总结(坐船版) 这是我带娃走过的线路。孩子最近迷恋坐船,我看到新闻说梅花碑有公交船,而且梅花开了很漂亮,就去看看。 这里记录一下行程,说不定以后还去,能做参考。 文中提及…...
视频高清低延时直播/音视频点播/云点播/云直播EasyDSS在校园教育/K12教育等各场景中的应用介绍
在线教育的核心竞争力,归根结底在于教学体验的优劣,而视频技术作为线上教学的核心载体,直接决定了教学体验的上限。随着在线教育行业的快速迭代,学员对线上课堂的要求愈发严苛:不仅需要高清流畅、稳定无卡顿的音视频传…...
利用快马平台快速生成virtualbox虚拟机配置脚本,搭建云端开发原型环境
今天想和大家分享一个快速搭建云端开发环境的小技巧。最近在尝试用VirtualBox创建Ubuntu服务器环境时,发现手动配置特别耗时,于是研究了一套自动化脚本方案,配合InsCode(快马)平台的快速生成功能,整个过程变得异常简单。 为什么需…...
周末高质量遛娃,你真的找对地方了吗?
“周末想高质量遛娃,却不知找对地方了没?” 周末对于家长来说,是陪伴孩子的黄金时间,都希望能给孩子一段既有趣又有意义的时光。但究竟哪里才是高质量遛娃的好去处呢?下面就为您详细解答。遛娃地点基础认知类Q…...
学习神经网络
一、神经网络概述:人工智能的核心基石(一)神经网络的定义与起源神经网络,全称为人工神经网络(Artificial Neural Network,ANN),是一种模仿生物神经网络(动物大脑神经元网…...
避坑指南:雅特力AT32F403A V2库在Keil5中的常见配置错误及解决方法
雅特力AT32F403A V2库在Keil5中的高频配置问题与实战修复方案 当国产MCU逐渐成为嵌入式开发的新选择,雅特力AT32F403A凭借其出色的性价比获得了不少工程师的青睐。但在实际开发中,特别是在Keil5环境下使用V2库时,不少开发者都会遇到一些看似简…...
GeographicLib:高精度大地测量计算C++库架构解析与实战指南
GeographicLib:高精度大地测量计算C库架构解析与实战指南 【免费下载链接】geographiclib Main repository for GeographicLib 项目地址: https://gitcode.com/gh_mirrors/ge/geographiclib GeographicLib是一个专为大地测量和地理空间计算设计的C库…...
Linux 调度器中的限流机制:throttled 标志的触发与解除
一、简介在实时系统和云计算环境中,资源隔离与公平分配是 Linux 内核调度的核心挑战。当多个任务共享 CPU 资源时,某些恶意或失控的任务可能耗尽全部 CPU 时间,导致关键任务饥饿(Starvation)。为此,Linux 内…...
