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

02复写零

复写零
在这里插入图片描述
我们先进行异地复写:代码如下

public class Test {public static void main(String[] args) {int []array ={1,0,2,3,0,4};duplicateZeros(array);}public static void  duplicateZeros(int[] arr) {int [] elem=new int[arr.length];for(int cur=0,dest=0;dest<arr.length;cur++) {if(arr[cur]!=0) {elem[dest]=arr[cur];dest++;} else{elem[dest]=arr[cur];dest++;if(dest>=arr.length) {break;}//防止dest越界elem[dest]=arr[cur];dest++;}}System.out.println(Arrays.toString(elem));}
}

在这里插入图片描述
我们尝试在一个数组上面从左向右边复写,这样会把一个数覆盖住,从而导致连环错误。

我们现在试试从右向左复写。
在这里插入图片描述
我们发现从右向左的方式可以解决这个问题。
但是我们现在出现了新的问题,如何找cur位置和dest位置。
在这里插入图片描述
但是要注意有一种特殊情况
在这里插入图片描述
这种情况dest越界,我们要处理一下
在这里插入图片描述
我写的:

public static void duplicateZeros(int[] arr) {int cur=-1;int dest=-1;for(;dest<arr.length-1;) {cur++;if(arr[cur]==0) {dest+=2;} else {dest++;}if(dest>=arr.length) {dest--;arr[dest]=arr[cur];dest--;cur--;break;}}while(cur>=0) {if(arr[cur]==0) {arr[dest]=arr[cur];dest--;arr[dest]=arr[cur];dest--;cur--;} else{arr[dest]=arr[cur];dest--;cur--;}}}
}

官方标准写的:

    class Solution{public void duplicateZeros(int[] arr){int cur = 0, dest = -1, n = arr.length;// 1. 先找到最后⼀个需要复写的数while(cur < n){if(arr[cur] == 0) dest += 2;else dest += 1;if(dest >= n - 1) break;cur++;}// 2. 处理⼀下边界情况if(dest == n){arr[n - 1] = 0;cur--; dest -= 2;}// 3. 从后向前完成复写操作while(cur >= 0){if(arr[cur] != 0) arr[dest--] = arr[cur--];else{arr[dest--] = 0;arr[dest--] = 0;cur--;}}}}

相关文章:

02复写零

复写零 我们先进行异地复写&#xff1a;代码如下 public class Test {public static void main(String[] args) {int []array {1,0,2,3,0,4};duplicateZeros(array);}public static void duplicateZeros(int[] arr) {int [] elemnew int[arr.length];for(int cur0,dest0;des…...

01-gcc编译c++过程

当然&#xff0c;可以为您简要概述GCC编译C程序的各个步骤及其对应的具体命令。 GCC编译C的四个主要步骤 预处理&#xff08;Preprocessing&#xff09;编译&#xff08;Compilation&#xff09;汇编&#xff08;Assembly&#xff09;链接&#xff08;Linking&#xff09; 1…...

互动式教育技术:Spring Boot师生共评作业管理系统

3系统分析 3.1可行性分析 通过对本师生共评的作业管理系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本师生共评的作业管理系统采用JAVA作为开发语言&…...

【云从】三、计算机网络基础

文章目录 1、网络2、网络通信2.1 IP地址2.2 子网掩码2.3 网关2.4 私有地址和公有地址2.5 NAT网络地址转换 3、网络架构及设备 1、网络 网络&#xff0c;即通过通信线路&#xff08;如光纤、网线&#xff09;和通信设备&#xff08;如路由器、光猫&#xff09;&#xff0c;将各…...

读书笔记《向上生长》关于记忆、链接的一些思考

摘录 NOTES 1.大脑非常低效&#xff0c;记性不好&#xff0c;还会自圆其说。很多成绩不好的学生绝大部分不记笔记&#xff0c;记了也不看。 2.注意力和肌肉一样&#xff0c;存在耗损&#xff0c;也可以通过锻炼来加强。 3. 所有知识必须链接到已经有的知识&#xff0c;到用的时…...

Kubesphere4.1版本创建应用Mysql并实现外网访问

目前Kubesphere4.1版本可查创建应用资料较少&#xff0c;特此记录作为参考。 目标 使用Kubesphere4.1完成Mysql服务部署并实现外网访问。 具体流程如下&#xff1a; 1.创建企业空间 2.创建项目 3.创建应用仓库 4.创建应用&#xff08;mysql&#xff09; 5.配置外网访…...

小猿口算跟风版——没想到吧,这也能暴力

前言 “接口也是口&#xff0c;算法也是算”&#xff0c;综合来看就是口算&#xff01; 看到全网都在炸鱼也忍不住来玩一玩… 参考了大佬的OCR版&#xff0c;试用后发现影响速度的最大卡点并不是识别速度等&#xff0c;而是““由于检测异常导致的等待”。 基于体验几局的感受…...

【RabbitMQ——消息应答机制——分布式事务解决方式】

1. RabbitMQ高级-消息确认机制的配置 NONE值是禁用发布确认模式&#xff0c;是默认值 CORRELATED值是发布消息成功到交换器后会触发回调方法&#xff0c;如1示例SIMPLE值经测试有两种效果&#xff0c;其一效果和CORRELATED值一样会触发回调方法&#xff0c;其二在发布消息成功…...

Android Studio Koala中Kotlin引入序列化Parcelable

找了一堆资料没有新构建序列化的方法&#xff0c;踩坑经历如下&#xff1a; 前提是使用Kotlin创建的项目 之前的build.gradle版本写法如下&#xff1a; 但是新版Android Studio Koala使用序列化模式发生了改变&#xff0c;如下&#xff1a; 测试成功如下&#xff1a; 发出来…...

安装postgresql和对应wal2json和pg_tm_aux插件避坑

1、安装原则&#xff1a;要用源码都用源码&#xff0c;要用yum都用yum 安装wal2json避坑 涉及的yum源&#xff0c;可以解决安装postgresql缺少依赖导致的wal2json和pg_tm_aux的报错问题 [centos-sclo-rh] nameCentOS-7 - SCLo rh baseurlhttps://mirrors.aliyun.com/centos/7/…...

OneDrive 全新时代:AI、生产力和回忆触手可及

OneDrive&#xff0c;无人不知&#xff0c;无人不晓。 无论您是在公司、家庭还是在通勤的路上&#xff0c;OneDrive 都能让您无缝管理文件、照片和回忆。OneDrive 受到 94% 的财富 500 强公司、数百万小型企业和无数个人的信赖&#xff0c;它正在改变世界协作、存储和连接的方…...

List子接口

1.特点&#xff1a;有序&#xff0c;有下标&#xff0c;元素可以重复 2.方法&#xff1a;包含Collection中的所有方法&#xff0c;还包括自己的独有的方法&#xff08;API中查找&#xff09; 还有ListIterator&#xff08;迭代器&#xff09;&#xff0c;功能更强大。 包含更多…...

快来了解 Java 内存数据库 H2,不要错过哦

H2 是一个用 Java 编写的开源关系型数据库管理系统&#xff0c;它具有小巧、快速、易于嵌入等特点。 H2 数据库可以以多种模式运行&#xff0c;包括嵌入式模式、服务器模式和内存模式。 在嵌入式模式下&#xff0c;H2 数据库直接嵌入到应用程序中&#xff0c;就像一个本地的库…...

基于Java的可携宠物酒店管理系统的设计与实现(论文+源码)_kaic

摘 要 随着社会经济的不断发‎‏展&#xff0c;现如今出行并住酒店的人越来越多&#xff0c;与之而来的是酒店行业的工作量日益增加&#xff0c;酒店的管理效率亟待提升。此外很多人出门旅游时会有携带宠物的情况&#xff0c;但是现如今酒店对宠物的限制&#xff0c;导致许多…...

吸毛效果好的宠物空气净化器分享,希喂、霍尼韦尔、米家实测

说起宠物空气净化器&#xff0c;几年前我可能会一脸鄙夷&#xff1a;为啥要花这种智商税冤枉钱&#xff1f; 直到之前养了一只猫&#xff0c;被家中乱飞的浮毛和滂臭的异味搞到头晕&#xff0c;于是作为i一个养宠的家电测评博主&#xff0c;索性对宠物空气净化器这玩意做了超级…...

Sqlite3入门看这一篇就够(超级详细,从零学起)

Sqlite3入门看这一篇就够(超级详细,从零学起) 一、SQLite3 基础1.1 SQLite3 的特点1.2 SQLite3 安装与使用1.2.1 debian操作系统安装SQLite31.2.2 window操作系统安装SQLite3二、下载 SQLite3三、配置 SQLite 环境四、使用 SQLite34.1. **创建数据库**:4.2. **常用命令**:…...

搭建知识库:助力大健康零售电商的快速发展

一、大健康零售电商行业的快速发展及其对知识库的需求 随着互联网技术的飞速发展和人们对健康意识的显著提升&#xff0c;大健康零售电商行业迎来了前所未有的发展机遇。这一行业不仅涵盖了传统零售业的商品销售&#xff0c;还融入了健康管理、健康咨询、健康数据分析等多元化…...

纠删码参数自适应匹配问题ECP-AMP实验方案(中)

6.方法设计 6.1.数据获取 为了收集不同的文件大小和纠删码参数对性能指标的影响&#xff0c;本文在Hadoop平台上进行了模拟实验。Hadoop是一种开源的分布式存储和计算框架&#xff0c;它可以支持不同类型的纠删码&#xff0c;并提供了一些应用程序接口和工具来测试和评估纠删…...

在设计接口时,什么时候应该用路径参数,什么时候将数据保存到方法体中,它们各自的优势是什么?

在设计 RESTful API 接口时&#xff0c;选择将数据放在路径参数&#xff08;Path Parameters&#xff09;还是方法体&#xff08;Request Body&#xff09;中&#xff0c;取决于具体的需求和使用场景。每种方式都有其优势和适用的场景。 路径参数&#xff08;Path Parameters&a…...

JVa冒泡排序

------------------------------冒泡排序--------------- let arry[1,2,3,4,5,6]; let temo;//容器交换 //两层循环 for(let i1;i<arry.length;i){ for(let j0;j<arry.length-i;j){ if(arry[j]>arry[j1]){ temparry[j]; arry[j]arry[j1]; arry[j1]temp; } } } console…...

技术文档检索总失败?Perplexity的chunking策略、embedding模型选型与rerank阈值调优(附实测Benchmark数据)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;技术文档检索总失败&#xff1f;Perplexity的chunking策略、embedding模型选型与rerank阈值调优&#xff08;附实测Benchmark数据&#xff09; 技术文档检索失败常源于文本切分不合理、语义表征能力不足或重排…...

别只盯着TPS!用JMeter汇总报告做一次完整的性能瓶颈分析实战

别只盯着TPS&#xff01;用JMeter汇总报告做一次完整的性能瓶颈分析实战 在性能测试领域&#xff0c;JMeter的汇总报告&#xff08;Summary Report&#xff09;是最常用的监听器之一&#xff0c;但很多测试工程师往往只关注其中的TPS&#xff08;每秒事务数&#xff09;指标&am…...

别再被html2canvas生成的图片糊一脸了!试试这个新版1.4.1的清晰度优化方案

深度解析html2canvas 1.4.1&#xff1a;告别图片模糊的现代解决方案 当我们需要将网页内容转换为图片时&#xff0c;html2canvas无疑是最常用的工具之一。然而&#xff0c;许多开发者在使用过程中都遭遇过生成的图片模糊不清的问题&#xff0c;尤其是在移动设备上表现更为明显。…...

嵌入式网络开发避坑:LwIP软件定时器溢出处理与链表排序的实战细节

嵌入式网络开发避坑&#xff1a;LwIP软件定时器溢出处理与链表排序的实战细节 在嵌入式网络开发中&#xff0c;LwIP协议栈因其轻量级和高度可裁剪性成为众多开发者的首选。然而&#xff0c;在实际应用中&#xff0c;软件定时器的溢出处理和链表排序逻辑往往是引发隐蔽问题的重灾…...

FactoryIO虚拟仓储避坑指南:从入仓出仓到急停处理的完整调试流程

FactoryIO虚拟仓储避坑实战&#xff1a;从坐标校准到多任务管理的深度调试手册 当第一次在FactoryIO中搭建虚拟仓储系统时&#xff0c;我盯着屏幕上那个69的货架模型&#xff0c;满心以为两小时就能搞定入仓出仓逻辑。直到凌晨三点&#xff0c;我还在和那个永远差0.006的坐标值…...

5大核心功能揭秘:MoneyPrinterPlus如何实现AI短视频自动化批量生产

5大核心功能揭秘&#xff1a;MoneyPrinterPlus如何实现AI短视频自动化批量生产 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,G…...

Zephyr启动流程的“模块化”设计哲学:从链接脚本到设备树的初始化链条解析

Zephyr启动流程的模块化设计哲学&#xff1a;从链接脚本到设备树的初始化链条解析 在嵌入式系统开发中&#xff0c;实时操作系统(RTOS)的启动流程往往是系统可靠性的第一道门槛。Zephyr RTOS以其独特的模块化设计理念&#xff0c;构建了一套高度可配置、可扩展的初始化体系&…...

Armbian编译避坑指南:如何绕过‘Docker不可用’及国内网络依赖问题,成功构建RK3588固件

Armbian编译实战&#xff1a;RK3588平台高效构建与网络优化策略 当国内开发者尝试为RK3588这类高性能ARM平台定制Armbian系统时&#xff0c;往往会遇到两个"拦路虎"&#xff1a;Docker环境配置报错和海外资源下载困难。本文将以Rock 5B开发板为例&#xff0c;通过全本…...

避坑指南:CubeMX配置STM32F429三重ADC时,ADC2/3的DMA请求为啥点不了?附手动开启代码

STM32F429三重ADC配置疑难解析&#xff1a;当CubeMX无法启用ADC2/3的DMA请求时如何手动突破限制 在嵌入式开发中&#xff0c;STM32系列微控制器因其丰富的外设资源而备受青睐&#xff0c;其中ADC&#xff08;模数转换器&#xff09;模块的性能直接影响信号采集系统的精度与速度…...

专业级LaTeX排版:深度解析中国科学技术大学学位论文模板括号使用的最佳实践

专业级LaTeX排版&#xff1a;深度解析中国科学技术大学学位论文模板括号使用的最佳实践 【免费下载链接】ustcthesis LaTeX template for USTC thesis 项目地址: https://gitcode.com/gh_mirrors/us/ustcthesis 在学术论文写作中&#xff0c;细节决定专业水准。中国科学…...