★ 算法OJ题 ★ 力扣283 - 移动零

news/2024/9/14 9:34:57/ 标签: 算法, leetcode, c++, 开发语言

Ciallo~(∠・ω< )⌒☆ ~ 今天,我将和大家一起做一道双指针算法题--移动零~

目录

一  题目

二  算法解析

三  编写算法


一  题目

283. 移动零 - 力扣(LeetCode)链接:283. 移动零 - 力扣(LeetCode)

二  算法解析

此题为典型的数组分块问题(根据⼀种划分⽅式,将数组的内容分成几部分。)

这种类型的题,⼀般就是使⽤双指针(用数组下标充当指针)来解决。

  • cur指针:从左往右遍历数组。初始化 cur = 0
  • dest指针:已处理区间内,最后一个非零元素的位置。 初始化 dest = -1

cur 依次往后遍历每个元素,则有两种情况:

1. cur指针遇到0:

  • 直接++cur

2. cur指针遇到非0:

  • dest++
  • 交换dest 和 cur 的值
  • cur++ 

 

三  编写算法

class Solution {
public:void moveZeroes(vector<int>& nums) {for(int cur = 0, dest = -1; cur < nums.size(); cur++){if(nums[cur] != 0) // 处理非零元素{swap(nums[cur], nums[++dest]);}}}
};


http://www.ppmy.cn/news/1517019.html

相关文章

linux 安装kafaka单体服务

1.下载kafka的linux安装包 前往Apache Kafka官方网站下载页面&#xff08;Apache Kafkahttps://kafka.apache.org/downloads&#xff09;&#xff0c;选择最新稳定版的Kafka二进制分发文件&#xff0c;通常是以.tgz结尾的文件。 手动下载kafka_2.13-3.8.0.tgz到本地&#xff0…

[图论]游戏

题目描述 B B B 经常与 A A A 一起玩游戏。今天&#xff0c;他们在一棵树上玩游戏。 A A A 有 m 1 m1 m1 块石子&#xff0c; B B B 有 m 2 m2 m2 块石子&#xff0c;游戏一开始&#xff0c;所有石头放在树的节点处&#xff0c;除了树根。 A A A 先移动石子。然后两人轮流移…

Java学习Day31:HTML 第一章:观音禅院

1.结构介绍 1.标签的分类 <单词> &#xff1a;元素标签 <元素 单词>&#xff1a;首先<>中至少有两个单词&#xff0c;那第一个肯定是元素标签&#xff0c;元素标签后跟的都是属性标签 2.文本元素 段落元素 段落元素 换行标签 br 水平线标签 标签会在页面…

【石子合并】

题目 错解 #include <bits/stdc.h> using namespace std; const int N 310; int a[N], s[N], f[N][N]; int main() {int n;cin >> n;memset(f, 0x3f, sizeof f);for(int i 1; i < n; i){cin >> a[i];s[i] s[i-1] a[i];f[i][i] 0;}for(int i 1; i &…

Datawhale X 李宏毅苹果书 AI夏令营-深度学习基础-Task1

# Datawhale AI 夏令营 夏令营手册&#xff1a;向李宏毅学深度学习 深度学习临界点 临界点&#xff1a;梯度为零的点 在神经网络训练过程中&#xff0c;当参数对损失微分为零的时候&#xff0c;梯度下降就不能再更新参数了&#xff0c;训练就停下来了&#xff0c;损失不再下…

Linux信号处理机制基础

什么是信号 信号在最早的UNIX系统中即被引入&#xff0c;已有30多年的历史&#xff0c;但只有很小的变化。信号是提供异步事件处理机制的软件中断。进程之间可以相互发送信号&#xff0c;这使信号成为一种进程间通信(Inter-ProcessCommunication,lPC)的基本手段 信号的名称与…

论文翻译:Multi-step Jailbreaking Privacy Attacks on ChatGPT

Multi-step Jailbreaking Privacy Attacks on ChatGPT https://arxiv.org/pdf/2304.05197 多步骤越狱隐私攻击对ChatGPT的影响 文章目录 多步骤越狱隐私攻击对ChatGPT的影响摘要1 引言2 相关工作3 对ChatGPT的数据提取攻击3.1 数据收集3.2 攻击制定3.3 从ChatGPT中提取私人数据…

Java——动态代理(2/2)-动态代理的应用场景和好处(原始模块、使用代理、测试执行)

目录 使用代理优化用户管理类 原始模块 使用代理 测试执行 解决实际问题、掌握使用代理的好处 使用代理优化用户管理类 场景 某系统有一个用户管理类&#xff0c;包含用户登录&#xff0c;删除用户&#xff0c;查询用户等功能&#xff0c;系统要求统计每个功能的执行耗…

MySQL和Hadoop

一、介绍 MySQL 针对结构化数据的存储、管理、查询 mysql和hadoop下的部分都是数据库&#xff0c;mysql用sql,hadoop用的是hiveql。&#xff08;大数据vs小数据&#xff09;&#xff08;结构化vs分布式&#xff09; Hadoop 定义&#xff1a;Hadoop 是一个开源的框架&#x…

小程序常用界面交互api

1. wx.showToast 显示消息提示框 显示一个消息提示框&#xff0c;一般用于操作成功后的提示 wx.showToast({title: 操作成功,icon: success,duration: 2000 });2. wx.showModal 显示模态弹窗 显示一个模态弹窗&#xff0c;可以用于提醒用户重要信息或让用户进行选择 wx.sho…

c++自定义迭代器,如跳表,怎么实现

在C中&#xff0c;跳表是一种高效的数据结构&#xff0c;用于存储有序数据并支持快速查找、插入和删除操作。为了在C类中实现跳表迭代器&#xff0c;你需要定义一个迭代器类&#xff0c;并在跳表类中提供相应的接口。以下是一个简单的实现示例&#xff1a; #include <iostr…

C++STL之list的使用详解

一、简介 1、底层&#xff1a;list为双向链表&#xff0c;即struct中包含一个数据和两个指针&#xff0c;分别指向前一个节点和后一个节点&#xff0c;在堆上分配空间&#xff0c;每插入一个元数都会分配空间&#xff0c;每删除一个元素都会释放空间 2、性能 ① 访问&#x…

【JPCS独立出版,EI稳定检索】2024年工业机器人与先进制造技术国际学术会议(IRAMT 2024,9月27-29)

2024年工业机器人与先进制造技术国际学术会议&#xff08;IRAMT 2024&#xff09;将于2024年9月27-29日在中国成都举办。 此次会议将围绕工业机器人、机电技术、机械及制造等领域的最新研究成果展开讨论&#xff0c;并广泛邀请了国内外领域内的著名专家与学者。会议旨在搭建一个…

序列化组件对比

1、msgpack介绍 1.MsgPack产生的数据更小&#xff0c;从而在数据传输过程中网络压力更小 2.MsgPack兼容性差&#xff0c;必须按照顺序保存字段 3.MsgPack是二进制序列化格式&#xff0c;兼容跨语言 官网地址&#xff1a; https://msgpack.org/ 官方介绍&#xff1a;Its lik…

【Python机器学习】NLP概述——深度处理

自然语言处理流水线的各个阶段可以看作是层&#xff0c;就像是前馈神经网络中的层一样。深度学习就是通过在传统的两层机器学习模型架构&#xff08;特征提取建模&#xff09;中添加额外的处理层来创建更复杂的模型和行为。 上图中&#xff0c;前四层对应于聊天机器人流水线中的…

<数据集>遥感船舶识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;15047张 标注数量(xml文件个数)&#xff1a;15047 标注数量(txt文件个数)&#xff1a;15047 标注类别数&#xff1a;25 标注类别名称&#xff1a;[Aircraft Carrier, Auxiliary Ships, Other Ship, Other Warship,…

【51单片机实物】基于51单片机设计的简易直流电机调测速系统(可用在普中开发板)——程序源码设计文档演示视频等(文末工程资料下载)

基于51单片机设计的简易直流电机调测速系统 演示视频 基于51单片机设计的简易直流电机调测速系统(可用在普中开发板) 功能任务描述:将设置的转速与当前测量的转速比较,得出差值用于控制DAC0832的输出电压,从而控制直流电机的转速,使转速逐渐达到设置转速。在LED上显示设…

【代码随想录训练营第42期 Day39打卡 - 打家劫舍问题 - LeetCode 198.打家劫舍 213.打家劫舍II 337.打家劫舍III

目录 一、做题心得 二、题目与题解 题目一&#xff1a;198.打家劫舍 题目链接 题解&#xff1a;动态规划 题目二&#xff1a;213.打家劫舍II 题目链接 题解&#xff1a;动态规划 题目三&#xff1a;337.打家劫舍III 题目链接 题解&#xff1a;动态规划 三、小结 一、…

通过React实现萤石摄像头rtsp地址格式的视频流的web展示

首先&#xff0c;我们需要拿到rtsp格式的流地址&#xff08;rtsp://admin:[password][ip]&#xff09;&#xff0c;其中 password:设备底下的6位数验证码 ip:设备的ipv4地址 这里拿到ip的方式可以直连网线和绑定wifi两种方式 然后下载PC端的萤石工作室&#xff08;下载中心…

五、Centos7-安装Jenkins

目录 一、基础环境准备 1.安装JDK 2.安装Tomcat 二、安装Jenkins 1.配置Jenkins插件镜像源 2.问题&#xff1a;进入manager jenkins页面报错 3.配置Git 4.配置jdk 三、重新安装Jenkins 四、另一种Centos安装jenkins的方式--最终可用版 克隆了一个base的虚拟机&#x…