当前位置: 首页 > news >正文

【双指针_移动零_C++】

题目解析
移动零

nums = [0,1,0,3,12]
[1,3,12,0,0]

算法原理
数组划分(数组分块)

双指针算法(利用数组下标来充当指针)

使用两个指针的作用:

cur指针:从左往右扫描数组,就是遍历数组。
dest指针:已经处理之后的区间内,非零元素的最后一个位置

这两个指针将分隔为三个区间:

第一个:[0,dest]
第二个:[dest+1,cur-1]
第三个:[cur,n-1]

在这里插入图片描述

第一个:[0,dest] 非0元素
第二个:[dest+1,cur-1] 0元素
第三个:[cur,n-1] 未处理元素

在这里插入图片描述


[0,1,0,3,12]

在这里插入图片描述

当你遇到0元素的时候,只需要让cur向后移动一位即可
当你遇到非0元素的时候,需要让dest先去向后移动一位,然后交换dest与cur位置的元素,然后cur继续向后移动一位。

在这里插入图片描述
在这里插入图片描述

当cur遍历到n位置的时候,表示已经完成。

在这里插入图片描述
总结一下:

cur从前往后遍历的过程中,会有两种情况:1.遇到0元素:cur++2.遇到非0元素:swap(dest+1,cur)dest++,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[++dest],nums[cur]);}}}
};

相关文章:

【双指针_移动零_C++】

题目解析 移动零 nums [0,1,0,3,12] [1,3,12,0,0]算法原理 数组划分&#xff08;数组分块&#xff09; 双指针算法&#xff08;利用数组下标来充当指针&#xff09;使用两个指针的作用&#xff1a; cur指针&#xff1a;从左往右扫描数组&#xff0c;就是遍历数组。 dest指针…...

【网络安全】网络安全威胁实时地图 - 2023

文章目录 [TOC] ① 360 安全大脑360 APT全景雷达 ② 瑞星杀毒瑞星云安全瑞星网络威胁态势感知平台 ③ 比特梵德 Bitdefender④ 飞塔防火墙 FortiGuard⑤ 音墙网络 Sonicwall⑥ 捷邦 Check Point⑦ AO卡巴斯基实验室全球模拟隧道模拟 ⑧ 数字攻击地图⑨ Threatbutt互联网黑客攻击…...

视频过大如何压缩变小?文件压缩技巧分享

如何压缩视频是许多视频编辑者、视频上传者经常遇到的问题&#xff0c;如果你也遇到了这个问题&#xff0c;不用担心&#xff0c;下面将就给大家分享几个视频压缩方法&#xff0c;可以帮助大家轻松地压缩视频&#xff0c;同时保持视频的高清晰度和音频质量。 一、嗨格式压缩大师…...

组合模式(Composite)

组合模式是一种结构型设计模式&#xff0c;主要用来将多个对象组织成树形结构以表示“部分-整体”的层次结构&#xff0c;因此该模式也称为“部分-整体”模式。简言之&#xff0c;组合模式就是用来将一组对象组合成树状结构&#xff0c;并且能像使用独立对象一样使用它们。 Co…...

grid map学习笔记3之详解grid_map_pcl库实现point cloud点云转换成grid map栅格地图

文章目录 0 引言1 grid_map_pcl示例1.1 主要文件1.2 示例数据1.3 启动文件1.4 配置文件1.5 主要实现流程1.6 启动示例1.7 示例结果 2 D435i 点云生成栅格地图2.1 D435i 点云文件2.2 修改启动文件2.3 测试和结果2.4 修改配置文件2.5 重新测试和结果 0 引言 grid map学习笔记1已…...

ebpf开发问题汇总

不同Programs之间通信 用bpf_obj_get来获取MAP的描述符&#xff0c;然后用bpf_map_reuse_fd函数来在不同program之间复用 kernel 与 user space之间 需要pin the BPF MAP to the BPF Virtual File System (VFS),来持久化存储&#xff0c;否则如果map用不到会被destory 引用…...

认识 mysql 命令

文章目录 1.简介2.选项3.子命令4.小结参考文献 1.简介 mysql 是 MySQL 的命令行客户端工具&#xff0c;用于连接到 MySQL 服务器并执行 SQL 语句。 它支持交互式和非交互式两种使用方式。以交互方式使用时&#xff0c;查询结果以 ASCII 表格式呈现。 当以非交互方式使用时&am…...

IK(Inverse Kinematics,逆运动学)

介绍 在Unity中&#xff0c;IK&#xff08;Inverse Kinematics&#xff0c;逆运动学&#xff09;是一种用于控制角色或物体骨骼的技术。通过使用IK&#xff0c;可以实现更自然和真实的动画效果&#xff0c;特别是在处理复杂的角色动作时非常有用。 IK Pass是Unity中的一个功能…...

Cadence 小技巧系列(持续更新)

■ ADE setup simulator/directory/host 更改仿真路径&#xff0c;默认home路径空间太小了&#xff0c;改成当前路径就行。 瞬态tran仿真要用APS跑&#xff08;setup--high...&#xff09; 瞬态tran仿真精度设置&#xff0c;conservation&#xff0c;option--maxstep设为0.1n…...

【unity】Pico VR 开发笔记(基础篇)

Pico VR 开发笔记(基础篇) XR Interaction Tooikit 版本 2.3.2 一、环境搭建 其实官方文档已经写的很详细了&#xff0c;这里只是不废话快速搭建&#xff0c;另外有一项官方说明有误的&#xff0c;补充说明一下&#xff0c;在开发工具部分说明 插件安装——安装pico的sdk和XR…...

竞争之王CEO商战课,聚百家企业在京举行

竞争之王CEO商战课&#xff0c;于2023年7月29-31日在北京临空皇冠假日酒店举办&#xff0c;近百家位企业家齐聚一堂&#xff0c;共享饕餮盛宴。 竞争之王CEO商战课是打赢商战的第一课。 竞争环境不是匀速变化&#xff0c;而是加速变化。 在未来的市场环境中&#xff0c;企业间…...

【shell】获取ping的时延数据并分析网络情况及常用命令学习

文章目录 获取ping的时延数据并分析网络情况|、||、&、&&辨析teetailkillall 获取ping的时延数据并分析网络情况 网络情况经常让我们头疼&#xff0c;每次都需要手动在终端ping太麻烦了&#xff0c;不如写个脚本ping并将数据带上时间戳存入文件&#xff0c;然后也…...

石子合并一章通(环形石子合并,四边形不等式,GarsiaWachs算法)(内附封面)

[NOI1995] 石子合并 题目描述 在一个圆形操场的四周摆放 N N N 堆石子&#xff0c;现要将石子有次序地合并成一堆&#xff0c;规定每次只能选相邻的 2 2 2 堆合并成新的一堆&#xff0c;并将新的一堆的石子数&#xff0c;记为该次合并的得分。 试设计出一个算法,计算出将 …...

Docker快速入门笔记

Docker快速入门 前言 当今软件开发领域的一股热潮正在迅速兴起&#xff0c;它融合了便捷性、灵活性和可移植性&#xff0c;让开发者们欣喜若狂。它就是 Docker&#xff01;无论你是一个初学者&#xff0c;还是一位经验丰富的开发者&#xff0c;都不能错过这个引领技术浪潮的工…...

【Excel】记录Match和Index函数的用法

最近一直用到的两个处理EXCEL表格数据的函数向大家介绍一下&#xff0c;写这篇博文的目的也是为了记录免得自己忘记了&#xff0c;嘻嘻。 先上百度的链接 Match函数的用法介绍&#xff1a;https://jingyan.baidu.com/article/2fb0ba40b4933941f3ec5f71.html 小结&#xff1a;…...

SolidUI社区-从开源社区角度思考苹果下架多款ChatGPT应用

文章目录 背景下架背景下架原因趋势SolidUI社区的未来规划结语如果成为贡献者 背景 随着文本生成图像的语言模型兴起&#xff0c;SolidUI想帮人们快速构建可视化工具&#xff0c;可视化内容包括2D,3D,3D场景&#xff0c;从而快速构三维数据演示场景。SolidUI 是一个创新的项目…...

插入排序讲解

插入排序&#xff08;Insertion-Sort&#xff09;一般也被称为直接插入排序。对于少量元素的排序&#xff0c;它是一个有效的算法。插入排序是一种最简单的排序方法&#xff0c;它的基本思想是将一个记录插入到已经排好序的有序表中&#xff0c;从而一个新的、记录数增1的有序表…...

杀疯了的ChatGPT——开启AI智能交流新纪元 「文末有彩蛋」

欢迎打开 ChatGPT 的新世纪大门 &#x1f30d; 目录 &#x1f60a; 引言&#x1f60e; ChatGPT 的高级之处1. 巨大的模型规模2. 广泛的知识覆盖3. 零样本学习4. 多语言支持5. 上下文感知对话 &#x1f916; 如何使用 ChatGPT1. 智能助手2. 个性化交互3. 语言学习伙伴4. 创造性写…...

web爬虫第五弹 - JS逆向入门(猿人学第一题)

0- 前言 爬虫是一门需要实战的学问。 而对于初学者来说&#xff0c;要想学好反爬&#xff0c;js逆向则是敲门砖。今天给大家带来一个js逆向入门实例&#xff0c;接下来我们一步一步来感受下入门的逆向是什么样的。该案例选自猿人学练习题。猿人学第一题 1- 拿到需求 进入页面…...

P5731 【深基5.习6】蛇形方阵

题目描述 给出一个不大于 9 9 9 的正整数 n n n&#xff0c;输出 n n n\times n nn 的蛇形方阵。 从左上角填上 1 1 1 开始&#xff0c;顺时针方向依次填入数字&#xff0c;如同样例所示。注意每个数字有都会占用 3 3 3 个字符&#xff0c;前面使用空格补齐。 输入格式…...

Linux 命名空间(Namespace)实战指南:从原理到容器化应用

1. Linux命名空间&#xff1a;容器技术的隐形骨架 第一次听说Linux命名空间时&#xff0c;我正被Docker容器里"独立"的进程树和网络配置搞得一头雾水。直到有天用lsns命令看到容器进程背后那些带方括号的ns标识&#xff0c;才恍然大悟——原来每个容器都是被命名空间…...

别再只插USB了!树莓派Pico的VSYS、3V3、VBUS引脚详解与实战供电方案

树莓派Pico电源系统深度解析&#xff1a;从锂电池到太阳能供电的实战指南 树莓派Pico作为一款性价比极高的微控制器开发板&#xff0c;其电源系统的灵活性和多样性常常被开发者低估。大多数用户习惯性地通过USB接口供电&#xff0c;却忽略了Pico内置的电源管理架构其实支持从2…...

不止Tomcat:用Procrun(prunsrv.exe)给你的任意Java GUI程序加个‘系统托盘监视器’

为Java GUI程序打造系统托盘监控&#xff1a;Procrun深度实践指南 在桌面应用开发中&#xff0c;系统托盘图标已经成为提升用户体验的标准配置。想象一下&#xff1a;当用户最小化你的Java应用时&#xff0c;它不会从任务栏消失&#xff0c;而是优雅地缩进系统托盘区域&#x…...

ABTestingGateway扩展开发教程:如何添加新的自定义分流方式

ABTestingGateway扩展开发教程&#xff1a;如何添加新的自定义分流方式 【免费下载链接】ABTestingGateway 项目地址: https://gitcode.com/gh_mirrors/ab/ABTestingGateway ABTestingGateway是一款基于Nginx-Lua的动态分流系统&#xff0c;通过灵活的策略配置实现请求…...

2025届必备的AI学术平台实测分析

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 源自自然语言处理跟知识图谱技术的AI开题报告工具&#xff0c;能自动剖析研究领域热点&#…...

【2026奇点大会权威解码】:全球仅37家机构验证的AGI突破性架构首次公开披露?

第一章&#xff1a;2026奇点智能技术大会&#xff1a;通用人工智能最新进展 2026奇点智能技术大会(https://ml-summit.org) 本届大会首次披露了多项突破性成果&#xff0c;其中最引人注目的是OpenCog Foundation联合MIT AGI Lab发布的Neuro-Symbolic Fusion Engine v3.2&…...

3步解锁加密音乐:Unlock Music让你的音乐在任何设备自由播放

3步解锁加密音乐&#xff1a;Unlock Music让你的音乐在任何设备自由播放 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库&#xff1a; 1. https://github.com/unlock-music/unlock-music &#xff1b;2. https://git.unlock-music.dev/um/web 项目地址:…...

Figma中文汉化插件终极指南:3分钟告别英文界面困扰

Figma中文汉化插件终极指南&#xff1a;3分钟告别英文界面困扰 【免费下载链接】figmaCN 中文 Figma 插件&#xff0c;设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma的英文界面而烦恼吗&#xff1f;作为一名中文设计师&#xff…...

12N65-ASEMI解锁功率电子新边界12N65

编辑&#xff1a;LL12N65-ASEMI解锁功率电子新边界12N65型号&#xff1a;12N65品牌&#xff1a;ASEMI沟道&#xff1a;NPN封装&#xff1a;TO-220F漏源电流&#xff1a;12A漏源电压&#xff1a;650VRDS(on):0.8Ω批号&#xff1a;最新引脚数量&#xff1a;3封装尺寸&#xff1a…...

掌握OpenBoardView:开源电路板查看器的高效电路分析与维修解决方案

掌握OpenBoardView&#xff1a;开源电路板查看器的高效电路分析与维修解决方案 【免费下载链接】OpenBoardView View .brd files 项目地址: https://gitcode.com/gh_mirrors/op/OpenBoardView OpenBoardView是一款专为电子工程师、硬件维修技术人员和电路设计爱好者打造…...