算法002——复写零
力扣——复写零点击即可跳转

这道题还是运用 双指针,我们从左往右开始,让 cur = 0,dest = 0,当我们循环时,会覆盖后面的值,所以从左到右无法实现,我们运用 从右到左的方式。
以示例一数组为例,从输出结果我们可以知道最后一个复写的数为 4,我们先让 cur 指向 4 的位置,让 dest 从数组的最后一个位置 从右往左 走
cur 会遇到两种情况
- cur 指向的值为 非零元素
此时,我们让 dest 指向的值 等于 cur 指向的值
两个指针一起向前移动一位 - cur 指向的值 为 零
此时,我们将 dest 指向的值 和 dest 前一个位置的值 都改为 零
也就是说 cur 的位置为 0 时,dest 往前移动两位

下一步,找到 复写的最后一个数
还是使用双指针,dest 初始化为 -1 ,让 cur 从下标 0 开始遍历数组
此时 cur 有两种情况
- cur 指向 非零
dest 向右移动一位 - cur 指向 零
dest 向右移动两位
当 dest 指向最后的位置时,cur 所指向的位置就是 复写最后一个数

在 cur++ 前,我们要判断 dest 是否越界,当 cur 指向 零 时,而 dest 此时正在数组的最后一个位置,这个情况 dest 向右移动两位会越界。
当我们出现 越界 情况时, 此时一定是因为 cur 指向 零 导致的,此时我们将最后一个位置修改成 零 ,然后让 dest 向前移动两位, cur 向前移动一位,然后继续完成复写操作。
代码如下
class Solution {public void duplicateZeros(int[] arr) {//1.首先找到最后一个复写的数int cur = 0;int dest = -1;while(cur < arr.length){if(arr[cur] == 0){dest+=2;}else{dest++;}if(dest >= arr.length - 1){break;}cur++;}//2.处理边界,此时越界,越界情况只可能为0if(dest == arr.length){arr[arr.length - 1] = 0;dest-=2;cur--;}//3.从后向前完成复写操作while(cur >= 0){if(arr[cur] != 0){arr[dest] = arr[cur];dest--;cur--;}else{arr[dest] = 0;dest--;arr[dest]= 0;dest--;cur--;}}}
}
今天累成菜狗了,什么都没学到,起码累到了

相关文章:
算法002——复写零
力扣——复写零点击即可跳转 这道题还是运用 双指针,我们从左往右开始,让 cur 0,dest 0,当我们循环时,会覆盖后面的值,所以从左到右无法实现,我们运用 从右到左的方式。 以示例一数组为例,从…...
例子 DQN + CartPole: 深入思考一下,强化学习确实是一场智能冒险之旅!
强化学习的概念 在技术人员眼里,深度学习、强化学习,或者是大模型,都只是一些算法。无论是简单,还是复杂,我们都是平静的看待。当商业元素日益渗透进技术领域,人人言必称大模型的时候。技术人该反思一下&a…...
java 实现xxl-job定时任务自动注册到调度中心
xxl-job 自动注册(执行器和任务) 前言 xxl-job是一个功能强大、简单易用、高可用且可扩展性强的分布式定时任务框架/分布式任务调度平台。它适用于各种需要定时任务调度的场景,并可根据业务需求进行灵活配置和扩展。 xxl-job简介 xxl-job是一个开源的分布式定时任务框架,…...
esp32串口通信
1、线路图 2、打开电脑的串口终端 3、eps32通过串口往电脑的串口终端输出信息: from machine import UART, Pin import time# 初始化UART0,波特率设置为115200 uart UART(0, baudrate115200, tx1, rx3)# 主循环 while True:# 要发送的消息#某些串口终…...
蓝桥杯备赛-前缀和-可获得的最小取值
问题描述 妮妮学姐手头有一个长度为 nn 的数组 aa,她想进行 kk 次操作来取出数组中的元素。每次操作必须选择以下两种操作之一: 取出数组中的最大元素。取出数组中的最小元素和次小元素。 妮妮学姐希望在进行完 kk 次操作后,取出的数的和最…...
UniApp 中封装 HTTP 请求与 Token 管理(附Demo)
目录 1. 基本知识2. Demo3. 拓展 1. 基本知识 从实战代码中学习,上述实战代码来源:芋道源码/yudao-mall-uniapp 该代码中,通过自定义 request 函数对 HTTP 请求进行了统一管理,并且结合了 Token 认证机制 请求封装原理ÿ…...
边缘计算+多模态感知:户外监控核心技术解析与工程部署实践!户外摄像头监控哪种好?户外摄像头监控十大品牌!格行视精灵VS海康威视VS大华横评!
一、核心参数解析与选型逻辑 1.环境适应性设计 极端天气防护:优先选择IP66/67防护等级的设备,例如格行视精灵通过IP67防水防尘设计可应对暴雨、沙尘暴等复杂环境,其密封轴承结构可有效防止水汽侵蚀内部电路。 温度耐受范围:北方…...
Spring项目-抽奖系统(实操项目)(ONE)
^__^ (oo)\______ (__)\ )\/\ ||----w | || || 一:前言: 随着互联网技术的快速发展,线上营销活动已成为企业吸引用户、…...
STM32-智能小车项目
项目框图 ST-link接线 实物图: 正面: 反面: 相关内容 使用L9110S电机模块 电机驱动模块L9110S详解 | 良许嵌入式 测速模块 语音模块SU-03T 网站:智能公元/AI产品零代码平台 一、让小车动起来 新建文件夹智能小车项目 在里面…...
Python:字符串常见操作
find(子字符串,开始位置下标,结束位置下标) 注意:开始位置和结束位置下标可以省略,表示在整个字符串中查找 stasdfghjkl print(st.find(a))#输出结果为0,表明a在第一个位置默认从零开始,找不到则返回-1 …...
Redis 哈希(Hash)
Redis 哈希(Hash) 概述 Redis 哈希(Hash)是一种特殊的键值对类型,它允许存储结构化的数据,例如一个对象或记录。每个哈希值可以包含多个字段,每个字段又可以存储一个字符串值。这使得Redis哈希非常适合用于存储对象的…...
Windows对比MacOS
Windows对比MacOS 文章目录 Windows对比MacOS1-环境变量1-Windows添加环境变量示例步骤 1:打开环境变量设置窗口步骤 2:添加系统环境变量 2-Mac 系统添加环境变量示例步骤 1:打开终端步骤 2:编辑环境变量配置文件步骤 3࿱…...
react 路由跳转的几种方式
在 React 中,路由跳转通常通过 react-router-dom(或类似的路由库)来实现。以下是几种常见的路由跳转方式: 1. 使用 <Link> 组件 <Link> 是最简单的路由跳转方式,它会生成一个 <a> 标签,…...
2.你有什么绝活儿?—Java能做什么?
1、Java的绝活儿:要问Java有什么绝活,我觉得它应该算是一位魔法师,会的绝活儿有很多,要说最能拿得出手的当属以下三个。 1.1 平台无关性:Java可以在任何地方施展魔法,无论是Windows、Linux还是Mac…...
2025年2月文章一览
2025年2月编程人总共更新了17篇文章: 1.2025年1月文章一览 2.《Operating System Concepts》阅读笔记:p2-p8 3.《Operating System Concepts》阅读笔记:p9-p12 4.《Operating System Concepts》阅读笔记:p13-p16 5.《Operati…...
C++ | 面向对象 | 类
👻类 👾语法格式 class className{Access specifiers: // 访问权限DataType variable; // 变量returnType functions() { } // 方法 };👾访问权限 class className {public:// 公有成员protected:// 受保护成员private:// 私有成员 }…...
leetcode:2164. 对奇偶下标分别排序(python3解法)
难度:简单 给你一个下标从 0 开始的整数数组 nums 。根据下述规则重排 nums 中的值: 按 非递增 顺序排列 nums 奇数下标 上的所有值。 举个例子,如果排序前 nums [4,1,2,3] ,对奇数下标的值排序后变为 [4,3,2,1] 。奇数下标 1 和…...
Visionpro cogToolBlockEditV2.Refresh()
在 C# 中使用 cogToolBlockEditV2.Refresh() 方法主要用于刷新 CogToolBlockEditV2 控件的显示状态,适用于动态更新界面或重新加载工具块(ToolBlock)的场景。以下是具体说明和典型应用场景。 基本作用 刷新控件显示:当修改了与 C…...
Apache Spark中的依赖关系与任务调度机制解析
Apache Spark中的依赖关系与任务调度机制解析 在Spark的分布式计算框架中,RDD(弹性分布式数据集)的依赖关系是理解任务调度、性能优化及容错机制的关键。宽依赖(Wide Dependency)与窄依赖(Narrow Dependency)作为两种核心依赖类型,直接影响Stage划分、Shuffle操作及容…...
网络基础III
目录 一、网络层 1.1IP协议 1.2网段划分(🔺) 1.3特殊的ip地址 1.4ip地址的数量限制 1.5私有ip和公网ip 1.6路由 二、数据链路层 2.1认识以太网 2.2以太网帧格式 2.3认识mac地址 2.4mac地址和ip地址 2.5认识MTU 2.6MTU对IP协议的…...
MorphoCopter:变形四旋翼无人机设计与控制技术
1. MorphoCopter:重新定义四旋翼无人机的形态与能力边界在无人机技术快速发展的今天,四旋翼飞行器已经成为从影视拍摄到灾害救援等多个领域的标配工具。然而,一个长期存在的硬件设计瓶颈始终未被突破——传统四旋翼的固定结构使其在需要通过狭…...
魔兽争霸3终极优化指南:5分钟解决画面拉伸与帧率限制难题
魔兽争霸3终极优化指南:5分钟解决画面拉伸与帧率限制难题 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为经典游戏魔兽争霸3在现代电…...
差分隐私下机器学习模型预处理完整性验证框架设计与实践
1. 项目概述:当模型审计遇上隐私保护在金融风控、医疗诊断这些对数据隐私和模型可靠性要求极高的领域,我们常常面临一个两难困境。一方面,一个机器学习模型在上线前,必须确保其训练流程是合规且完整的,尤其是数据预处理…...
e-cology单点登录token认证失败排查指南
1. 这不是账号被锁,而是认证链路上某个环节“失联”了“e-cology token认证时报错该账号存在异常,单点登录失败”——这句话我去年在客户现场听运维同事念了不下二十遍。它不像“密码错误”或“用户不存在”那样直白,也不像“系统繁忙请稍后再…...
建筑项目进度延误率下降37%的秘密:一个轻量化AI Agent工作流,已在12个EPC项目中闭环验证
更多请点击: https://codechina.net 第一章:建筑项目进度延误率下降37%的秘密:一个轻量化AI Agent工作流,已在12个EPC项目中闭环验证 在某头部工程总承包(EPC)企业落地的轻量化AI Agent工作流,…...
全球仅17家机构掌握的PlayAI教育大模型微调技术(含3所双一流高校内部调参手册节选)
更多请点击: https://intelliparadigm.com 第一章:PlayAI教育大模型微调技术的全球稀缺性与战略价值 在全球人工智能教育应用加速落地的背景下,PlayAI教育大模型微调技术已成为少数国家与头部机构掌握的核心能力。其稀缺性不仅源于算力、数据…...
自动化业务通报系统实现
问题解构:需求核心是构建一个基于Python的自动化业务通报系统,用于从多个.xls报表中提取数据,按团队统计指标完成情况,生成手机适配的通报图片,并通过Web界面展示。系统需支持灵活的配置管理,包括团队信息、…...
Oracle EBS的退货处理逻辑
1.1日库存数量1个 价格20元 库存价值1*2020元,采用移动平均成本法2.1日PO1 采购价格 10元 数量3个 入库3个 此时库存价值为 203*1050元 平均价格为 50/412.5元3.1日PO2 采购价格 20元 数量6个 入库6个 此时库存价值为 203020*6170元 平均价格为 170/1017元5.1日PO1 …...
HTML应用指南:利用GET请求获取智己汽车门店位置信息
智己汽车作为高端智能电动汽车品牌,深度融合先锋设计美学、纯电驱动技术、高阶智能驾驶与全场景出行服务,依托L7、LS7、LS6、L6等产品矩阵,打造兼具科技感与驾控乐趣的高端出行体验。在营销推广层面,智己摒弃传统4S店模式…...
鸿蒙今日穿搭页面构建:搭配推荐与风格筛选模块详解
鸿蒙今日穿搭页面构建:搭配推荐与风格筛选模块详解 前言 在 HarmonyOS 6.0 应用开发中,穿搭类页面的核心挑战在于如何展示搭配灵感、风格筛选和衣橱管理。本文将以“今日穿搭”应用的主页面为例,深入解析如何在鸿蒙平台上构建时尚穿搭类应用的…...
