1.1 双指针专题:移动零(easy)

一、题目链接

283. 移动零

二、题目描述

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

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

⽰例 1:

        输⼊: nums = [0,1,0,3,12]

        输出: [1,3,12,0,0]

⽰例 2:

        输⼊: nums = [0]

        输出: [0]

三、解法

思路

双指针 dest 和 cur 将数组划分为三个区间:

  • [0,dest]:全部非零元素
  • [dest + 1,cur - 1]:全部零元素
  • [cur,nums.size()-1]:未处理区间

流程

四、代码

#include <vector>
class Solution 
{
public:void moveZeroes(vector<int>& nums) {int cur = 0, dest = -1;while(cur < nums.size()){if(nums[cur]){swap(nums[++dest],nums[cur]);}++cur;}}
};

运行结果

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32如何精准控制步进电机?

在工业自动化、机器人控制等场合&#xff0c;步进电机以其高精度、开环控制的特性得到了广泛应用。而在嵌入式系统中&#xff0c;使用STM32进行步进电机的精确控制&#xff0c;已成为开发者的首选方案之一。 本文将从嵌入式开发者的角度&#xff0c;深入探讨如何基于STM32 MCU…

Android Studio右上角Gradle 的Task展示不全

Android Studio 版本如下&#xff1a;Android Studio lguana|2023.21, 发现Gradle 的Tasks阉割严重&#xff0c;如下图&#xff0c;只显示一个other 解决方法如下&#xff1a;**Setting>Experimental>勾选Configure all gradle tasks during Gradle Sync(this can make…

华为hcia——Datacom实验指南——三层交换和ARP的工作原理

什么是三层交换 三层交换是指连接在同一台三层交换机上&#xff0c;不同vlan用户&#xff0c;不同网段ip&#xff0c;通过vlanif接口进行数据交换。 什么是ARP协议 通过网络层的ip地址解析成数据链路层的mac地址。 说白了就是通过目标ip地址去问他对应的mac地址是多少。 A…

【互联网性能指标】QPS/TPS/PV/UV/IP/GMV/DAU/MAU/RPS

&#x1f4d5;我是廖志伟&#xff0c;一名Java开发工程师、《Java项目实战——深入理解大型互联网企业通用技术》&#xff08;基础篇&#xff09;、&#xff08;进阶篇&#xff09;、&#xff08;架构篇&#xff09;清华大学出版社签约作家、Java领域优质创作者、CSDN博客专家、…

Spring(七)AOP-代理模式

目录 代理模式 一 静态代理 一、核心作用 二、使用场景 二 动态代理 一、核心作用 二、使用场景 具体实现&#xff1a;&#xff08;初始&#xff09; 具体实现&#xff1a;&#xff08;改进&#xff09; 一、核心业务逻辑 1. 接口 MathCalculator 2. 实现类 MathCa…

AI革命编程学习:Python语法速通与高阶突破全实战(第二部分:AI辅助调试与高阶编程)

只要编程&#xff0c;代码错误和有问题肯定是难免&#xff0c;更何况还是全AI生成代码&#xff0c;是否符合我们的要求与预期&#xff0c;以及代码是否有逻辑错误&#xff0c;是否有代码错误。下面我们继续这一部分&#xff0c;代码调试、代码修复等基本过程。 一、代码调试 …

脚本学习(1)验证目录自动化生成脚本

1、脚本介绍 旨在一键创建符合IC验证规范的目录结构&#xff0c;避免手动创建目录和文件的重复劳动。 优点&#xff1a;模块级验证目录可一键创建&#xff0c;代码简单易懂&#xff0c;可复用性高。 缺点&#xff1a;子系统或系统级不适用。 2、生成的目录结构 /home/user…

【C#实现手写Ollama服务交互,实现本地模型对话】

前言 C#手写Ollama服务交互&#xff0c;实现本地模型对话 最近使用C#调用OllamaSharpe库实现Ollama本地对话&#xff0c;然后思考着能否自己实现这个功能。经过一番查找&#xff0c;和查看OllamaSharpe源码发现确实可以。其实就是开启Ollama服务后&#xff0c;发送HTTP请求&a…

【十四】Golang 接口

&#x1f4a2;欢迎来到张胤尘的开源技术站 &#x1f4a5;开源如江河&#xff0c;汇聚众志成。代码似星辰&#xff0c;照亮行征程。开源精神长&#xff0c;传承永不忘。携手共前行&#xff0c;未来更辉煌&#x1f4a5; 文章目录 接口接口定义接口初始化接口嵌套空接口存储任意类…

Spark(8)配置Hadoop集群环境-使用脚本命令实现集群文件同步

一.hadoop的运行模式 二.scp命令————基本使用 三.scp命令———拓展使用 四.rsync远程同步 五.xsync脚本集群之间的同步 一.hadoop的运行模式 hadoop一共有如下三种运行方式&#xff1a; 1. 本地运行。数据存储在linux本地&#xff0c;测试偶尔用一下。我们上一节课使用…

基于Django的协同过滤算法养老新闻推荐系统的设计与实现

基于Django的协同过滤算法养老新闻推荐系统&#xff08;可改成普通新闻推荐系统使用&#xff09; 开发工具和实现技术 Pycharm&#xff0c;Python&#xff0c;Django框架&#xff0c;mysql8&#xff0c;navicat数据库管理工具&#xff0c;vue&#xff0c;spider爬虫&#xff0…

基于STM32的逻辑分析仪

目录 制约性能因素协议命令下位机回复CMD_ID的回复CMD_METADATA命令的回复上报的采样数 设置使用开源软件PulseView设置操作1&#xff0e;设置采样数2&#xff0e;设置采样频率3.使能或禁止通道4.设置通道的触发条件 实现准备汇编指令精确测量时间 程序C语言初实现采集数据上报…

Kafka,Mq,Redis作为消息队列使用时的差异?|消息队列

在分布式系统中&#xff0c;消息队列&#xff08;Message Queue&#xff0c;MQ&#xff09;扮演着至关重要的角色&#xff0c;负责解耦系统、削峰填谷、提升系统的吞吐量。Kafka、传统的MQ&#xff08;如RabbitMQ、ActiveMQ&#xff09;和Redis在实际应用中都被广泛用作消息队列…

SpringBoot + vue 管理系统

SpringBoot vue 管理系统 文章目录 SpringBoot vue 管理系统 1、成品效果展示2、项目准备3、项目开发 3.1、部门管理 3.1.1、前端核心代码3.1.2、后端代码实现 3.2、员工管理 3.2.1、前端核心代码3.2.2、后端代码实现 3.3、班级管理 3.3.1、前端核心代码3.3.2、后端代码实现 …

JVM常用概念之本地内存跟踪

问题 Java应用启动或者运行过程中报“内存不足&#xff01;”&#xff0c;我们该怎么办? 基础知识 对于一个在本地机器运行的JVM应用而言&#xff0c;需要足够的内存来存储机器代码、堆元数据、类元数据、内存分析等数据结构&#xff0c;来保证JVM应用的成功启动以及未来平…

计算机网络基础知识(web漏洞解析与攻防实战)

感谢机械工业出版社赠送的《web漏洞解析与攻防实战》&#xff0c;这本书是2023年刚刚出版的&#xff0c;作者是安全圈子里非常出名的do9gy和phith0n&#xff0c;今日有幸拜读大作&#xff0c;欣喜万分。受益匪浅的一点是&#xff0c;认识到POST请求上传文件的时候&#xff0c;H…

Vue 过滤器 filter(s) 的使用

即过滤器是用来格式化数据的一个函数。过滤器不会修改原始数据&#xff0c;它的作用是过滤数据&#xff0c;就是对数据进行加工处理并返回处理后的数据&#xff0c;比如做一些数据格式上的修改&#xff0c;状态转换等。 过滤器分为两种 组件内的过滤器(组件内有效) 全局过滤器…

cocos creator使用mesh修改图片为圆形,减少使用mask,j减少drawcall,优化性能

cocos creator版本2.4.11 一个mask占用drawcall 3个以上&#xff0c;针对游戏中技能图标&#xff0c;cd,以及多玩家头像&#xff0c;是有很大优化空间 1.上代码&#xff0c;只适合单独图片的&#xff0c;不适合在图集中的图片 const { ccclass, property } cc._decorator;c…

deepseek的regflow安装mac版本

deepseek的ragflow部署安装 一:ollama安装,自行完成,我本地已安装 二:查看大模型情况oll::命令ollama list,我本地无ragflow 三:docker安装:命令docker version ,自行完成,我本地已安装 四:安装知识库软件ragflow: 简单科普下Ragflow 是一个基于深度学习模型的问答生成工具&…

【华三】STP端口角色与状态深度解析

STP端口角色与状态深度解析&#xff1a;构建无环网络的基石 引言一、STP基础回顾二、端口角色详解1. 根端口&#xff08;Root Port&#xff09;2. 指定端口&#xff08;Designated Port&#xff09;3. 非指定端口&#xff08;阻塞端口&#xff09; 三、端口状态转换流程四、角色…