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

算法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——复写零

力扣——复写零点击即可跳转 这道题还是运用 双指针&#xff0c;我们从左往右开始&#xff0c;让 cur 0&#xff0c;dest 0,当我们循环时&#xff0c;会覆盖后面的值&#xff0c;所以从左到右无法实现&#xff0c;我们运用 从右到左的方式。 以示例一数组为例&#xff0c;从…...

例子 DQN + CartPole: 深入思考一下,强化学习确实是一场智能冒险之旅!

强化学习的概念 在技术人员眼里&#xff0c;深度学习、强化学习&#xff0c;或者是大模型&#xff0c;都只是一些算法。无论是简单&#xff0c;还是复杂&#xff0c;我们都是平静的看待。当商业元素日益渗透进技术领域&#xff0c;人人言必称大模型的时候。技术人该反思一下&a…...

java 实现xxl-job定时任务自动注册到调度中心

xxl-job 自动注册(执行器和任务) 前言 xxl-job是一个功能强大、简单易用、高可用且可扩展性强的分布式定时任务框架/分布式任务调度平台。它适用于各种需要定时任务调度的场景,并可根据业务需求进行灵活配置和扩展。 xxl-job简介 xxl-job是一个开源的分布式定时任务框架,…...

esp32串口通信

1、线路图 2、打开电脑的串口终端 3、eps32通过串口往电脑的串口终端输出信息&#xff1a; from machine import UART, Pin import time# 初始化UART0&#xff0c;波特率设置为115200 uart UART(0, baudrate115200, tx1, rx3)# 主循环 while True:# 要发送的消息#某些串口终…...

蓝桥杯备赛-前缀和-可获得的最小取值

问题描述 妮妮学姐手头有一个长度为 nn 的数组 aa&#xff0c;她想进行 kk 次操作来取出数组中的元素。每次操作必须选择以下两种操作之一&#xff1a; 取出数组中的最大元素。取出数组中的最小元素和次小元素。 妮妮学姐希望在进行完 kk 次操作后&#xff0c;取出的数的和最…...

UniApp 中封装 HTTP 请求与 Token 管理(附Demo)

目录 1. 基本知识2. Demo3. 拓展 1. 基本知识 从实战代码中学习&#xff0c;上述实战代码来源&#xff1a;芋道源码/yudao-mall-uniapp 该代码中&#xff0c;通过自定义 request 函数对 HTTP 请求进行了统一管理&#xff0c;并且结合了 Token 认证机制 请求封装原理&#xff…...

边缘计算+多模态感知:户外监控核心技术解析与工程部署实践!户外摄像头监控哪种好?户外摄像头监控十大品牌!格行视精灵VS海康威视VS大华横评!

一、核心参数解析与选型逻辑 1.环境适应性设计 极端天气防护&#xff1a;优先选择IP66/67防护等级的设备&#xff0c;例如格行视精灵通过IP67防水防尘设计可应对暴雨、沙尘暴等复杂环境&#xff0c;其密封轴承结构可有效防止水汽侵蚀内部电路。 温度耐受范围&#xff1a;北方…...

Spring项目-抽奖系统(实操项目)(ONE)

^__^ (oo)\______ (__)\ )\/\ ||----w | || || 一&#xff1a;前言&#xff1a; 随着互联网技术的快速发展&#xff0c;线上营销活动已成为企业吸引用户、…...

STM32-智能小车项目

项目框图 ST-link接线 实物图&#xff1a; 正面&#xff1a; 反面&#xff1a; 相关内容 使用L9110S电机模块 电机驱动模块L9110S详解 | 良许嵌入式 测速模块 语音模块SU-03T 网站&#xff1a;智能公元/AI产品零代码平台 一、让小车动起来 新建文件夹智能小车项目 在里面…...

Python:字符串常见操作

find(子字符串&#xff0c;开始位置下标&#xff0c;结束位置下标) 注意&#xff1a;开始位置和结束位置下标可以省略&#xff0c;表示在整个字符串中查找 stasdfghjkl print(st.find(a))#输出结果为0&#xff0c;表明a在第一个位置默认从零开始&#xff0c;找不到则返回-1 …...

Redis 哈希(Hash)

Redis 哈希(Hash) 概述 Redis 哈希&#xff08;Hash&#xff09;是一种特殊的键值对类型&#xff0c;它允许存储结构化的数据&#xff0c;例如一个对象或记录。每个哈希值可以包含多个字段&#xff0c;每个字段又可以存储一个字符串值。这使得Redis哈希非常适合用于存储对象的…...

Windows对比MacOS

Windows对比MacOS 文章目录 Windows对比MacOS1-环境变量1-Windows添加环境变量示例步骤 1&#xff1a;打开环境变量设置窗口步骤 2&#xff1a;添加系统环境变量 2-Mac 系统添加环境变量示例步骤 1&#xff1a;打开终端步骤 2&#xff1a;编辑环境变量配置文件步骤 3&#xff1…...

react 路由跳转的几种方式

在 React 中&#xff0c;路由跳转通常通过 react-router-dom&#xff08;或类似的路由库&#xff09;来实现。以下是几种常见的路由跳转方式&#xff1a; 1. 使用 <Link> 组件 <Link> 是最简单的路由跳转方式&#xff0c;它会生成一个 <a> 标签&#xff0c…...

2.你有什么绝活儿?—Java能做什么?

1、Java的绝活儿&#xff1a;要问Java有什么绝活&#xff0c;我觉得它应该算是一位魔法师&#xff0c;会的绝活儿有很多&#xff0c;要说最能拿得出手的当属以下三个。 1.1 平台无关性&#xff1a;Java可以在任何地方施展魔法&#xff0c;无论是Windows、Linux还是Mac&#xf…...

2025年2月文章一览

2025年2月编程人总共更新了17篇文章&#xff1a; 1.2025年1月文章一览 2.《Operating System Concepts》阅读笔记&#xff1a;p2-p8 3.《Operating System Concepts》阅读笔记&#xff1a;p9-p12 4.《Operating System Concepts》阅读笔记&#xff1a;p13-p16 5.《Operati…...

C++ | 面向对象 | 类

&#x1f47b;类 &#x1f47e;语法格式 class className{Access specifiers: // 访问权限DataType variable; // 变量returnType functions() { } // 方法 };&#x1f47e;访问权限 class className {public:// 公有成员protected:// 受保护成员private:// 私有成员 }…...

leetcode:2164. 对奇偶下标分别排序(python3解法)

难度&#xff1a;简单 给你一个下标从 0 开始的整数数组 nums 。根据下述规则重排 nums 中的值&#xff1a; 按 非递增 顺序排列 nums 奇数下标 上的所有值。 举个例子&#xff0c;如果排序前 nums [4,1,2,3] &#xff0c;对奇数下标的值排序后变为 [4,3,2,1] 。奇数下标 1 和…...

Visionpro cogToolBlockEditV2.Refresh()

在 C# 中使用 cogToolBlockEditV2.Refresh() 方法主要用于刷新 CogToolBlockEditV2 控件的显示状态&#xff0c;适用于动态更新界面或重新加载工具块&#xff08;ToolBlock&#xff09;的场景。以下是具体说明和典型应用场景。 基本作用 刷新控件显示&#xff1a;当修改了与 C…...

Apache Spark中的依赖关系与任务调度机制解析

Apache Spark中的依赖关系与任务调度机制解析 在Spark的分布式计算框架中,RDD(弹性分布式数据集)的依赖关系是理解任务调度、性能优化及容错机制的关键。宽依赖(Wide Dependency)与窄依赖(Narrow Dependency)作为两种核心依赖类型,直接影响Stage划分、Shuffle操作及容…...

网络基础III

目录 一、网络层 1.1IP协议 1.2网段划分&#xff08;&#x1f53a;&#xff09; 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协议的…...

FLUX.小红书极致真实V2效果展示:宠物毛发层次、眼睛高光、微表情刻画

FLUX.小红书极致真实V2效果展示&#xff1a;宠物毛发层次、眼睛高光、微表情刻画 想不想拥有一款能生成媲美专业摄影棚照片的AI工具&#xff1f;今天要展示的&#xff0c;就是这样一个“神器”——基于FLUX.1-dev模型和小红书极致真实V2 LoRA打造的本地图像生成工具。它最大的…...

OpenClaw自动化测试实践:Qwen3.5-9B驱动日志分析与报告生成

OpenClaw自动化测试实践&#xff1a;Qwen3.5-9B驱动日志分析与报告生成 1. 为什么选择OpenClawQwen3.5做测试分析&#xff1f; 去年参与的一个物联网项目让我吃尽了测试日志的苦头——每天要手动分析近千条设备日志&#xff0c;从中筛选异常模式、统计错误类型、整理测试报告…...

python mmap

# 聊聊Python里的mmap&#xff1a;把文件当内存用 平时处理文件的时候&#xff0c;大多数人想到的都是open、read、write这些常规操作。但如果你需要处理特别大的文件&#xff0c;或者想在多个进程间共享数据&#xff0c;常规的文件操作就显得有些力不从心了。这时候可以看看mm…...

Janus-Pro-7B前端集成指南:Vue.js项目中调用AI模型的完整流程

Janus-Pro-7B前端集成指南&#xff1a;Vue.js项目中调用AI模型的完整流程 最近有不少前端朋友问我&#xff0c;怎么在自己的Vue项目里接入那些看起来很酷的AI模型。说实话&#xff0c;我刚接触的时候也觉得有点复杂&#xff0c;又是API调用&#xff0c;又是流式响应&#xff0…...

ESP32轻量libcurl移植:HTTP/HTTPS客户端开发指南

1. 项目概述libcurl-esp32是一个专为 ESP32 平台定制的轻量化 libcurl 移植库&#xff0c;其核心目标是在 PlatformIO 构建环境下&#xff0c;为嵌入式固件开发者提供标准curl/curl.h头文件接口及对应运行时功能。该库并非完整移植上游 libcurl 的全部特性&#xff08;如 FTP、…...

SystemView在RT-Thread嵌入式开发中的实战应用

1. SystemView工具概述SystemView是SEGGER公司推出的一款嵌入式系统可视化分析工具&#xff0c;专门用于调试和分析实时操作系统(RTOS)的运行情况。作为一名长期从事嵌入式开发的工程师&#xff0c;我亲身体验过这款工具在项目调试中的强大作用。SystemView的核心功能在于它能够…...

专业级反爬突破:实战解析开源Wenshu_Spider技术架构与完整解决方案

专业级反爬突破&#xff1a;实战解析开源Wenshu_Spider技术架构与完整解决方案 【免费下载链接】Wenshu_Spider :rainbow:Wenshu_Spider-Scrapy框架爬取中国裁判文书网案件数据(2019-1-9最新版) 项目地址: https://gitcode.com/gh_mirrors/wen/Wenshu_Spider 中国裁判文…...

ComfyUI Essentials:填补ComfyUI核心缺失功能的必备插件指南

ComfyUI Essentials&#xff1a;填补ComfyUI核心缺失功能的必备插件指南 【免费下载链接】ComfyUI_essentials 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI_essentials ComfyUI Essentials是一款专门为ComfyUI用户设计的插件&#xff0c;它提供了ComfyUI核心…...

【Docker】RedHat 7.9 企业级环境 Docker 部署实战与避坑指南

1. 企业级环境下的Docker部署挑战 在企业生产环境中部署Docker&#xff0c;尤其是像RedHat 7.9这样的传统Linux发行版&#xff0c;会遇到不少特有的挑战。我经历过多次这样的部署过程&#xff0c;深知其中可能遇到的坑。不同于个人开发环境&#xff0c;企业级部署需要考虑稳定性…...

实战应用:用快马生成生产级服务器巡检与故障排查工具,告别xshell单点操作

最近在团队里负责服务器运维工作&#xff0c;经常需要处理各种突发故障。每次打开xshell手动敲命令排查问题&#xff0c;不仅效率低&#xff0c;还容易遗漏关键检查项。于是我用InsCode(快马)平台开发了一个自动化巡检工具&#xff0c;彻底告别了单点操作的时代。分享下这个实战…...