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

【算法刷题】Day7

文章目录

  • 283. 移动零
  • 1089. 复写零

283. 移动零

在这里插入图片描述
原题链接

看到题目,首先看一下题干的要求,是在原数组内进行操作,平切保持非零元素的相对顺序

这个时候我们看到了示例一:
[ 0, 1, 0, 3,12 ]
这个时候输出成为了
[ 1, 3, 12, 0, 0 ]

我们这里可以运用**“双指针”**的方法这里的双指针,并不是 c 语言中的指针,而是用数组模拟的指针

首先:
我们要定义两个“指针”,cur 和 dest
cur:从左往右扫描数组,遍历数组
dest:已处理的区间内,在非零元素的最后一个位置

这个时候,数组就被 cur 和 dest 分成了三个区间
[ 0, dest ] 存放非零元素
[ dest+1, cur-1 ] 0元素
[ cur, n-1 ] 未处理的元素

然后:
cur 从前往后遍历
遇到 0 元素:cur++
遇到非零元素:swap(dest+1,cur); dest++; cur++;

public void moveZeroes(int[] nums) {int cur = 0;int dest = -1;for (; cur < nums.length; cur++) {if (nums[cur] != 0) {dest++;int tmp = nums[cur];nums[cur] = nums[dest];nums[dest] = tmp;}}}

在这里插入图片描述

1089. 复写零

在这里插入图片描述
原题链接

首先先看题干,把数组中每个零都复写一遍,其他元素水平右移,并且就地修改
这里我们需要用到双指针,从后往前进行复写

但是这里我们需要先遍历一遍,找到要复写的数字

方法:

  1. 定义cur 和 dest
    cur:遍历数组
    dest:目标的位置
  2. 先用双指针找到要复写的数字
    遇到 0,dest += 2;
    这里会遇到复写两个0,但是最后一个0超出数组范围
    这个时候我们需要把数组最后一个位置置为0,dest 的位置-2,cur–
  3. 从后往前遍历
public void duplicateZeros(int[] arr) {int cur = 0;int dest = -1;int 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--;}}}

在这里插入图片描述

相关文章:

【算法刷题】Day7

文章目录 283. 移动零1089. 复写零 283. 移动零 原题链接 看到题目&#xff0c;首先看一下题干的要求&#xff0c;是在原数组内进行操作&#xff0c;平切保持非零元素的相对顺序 这个时候我们看到了示例一&#xff1a; [ 0, 1, 0, 3,12 ] 这个时候输出成为了 [ 1, 3, 12, 0, …...

前端 | iframe框架标签应用

文章目录 &#x1f4da;嵌入方式&#x1f4da;图表加载显示&#x1f4da;100%嵌入及滑动条问题&#x1f4da;加载动画保留 前情提要&#xff1a; 计划用iframe把画好的home1.html&#xff08;echarts各种图表组成的html数据大屏&#xff09;嵌入整合到index.html&#xff08;搭…...

linux -系统通用命令查询

有时候内网环境下&#xff0c;系统有些命令没有安装因此掌握一些通用的linux 命令也可以帮助我们解决一些问题查看 1.查看系统内核版本 uname -r2.查看系统版本 cat /etc/os-release3. 查看cpu 配置 lscpu4.查看内存信息 free [参数] 中各个数值的解释如下表 数值解释t…...

python炒股自动化(1),量化交易接口区别

要实现股票量化程序化自动化&#xff0c;就需要券商提供的API接口&#xff0c;重点是个人账户小散户可以申请开通&#xff0c;上手要简单&#xff0c;接口要足够全面&#xff0c;功能完善&#xff0c;首先&#xff0c;第一步就是要找对渠道和方法&#xff0c;这里我们不讨论量化…...

LeetCode(35)螺旋矩阵【矩阵】【中等】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 54. 螺旋矩阵 1.题目 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a…...

BeanUtil.copyProperties的优化与使用(解决copyProperties null值覆盖问题)

BeanUtil.copyProperties的优化与使用 前言一、copyProperties是什么&#xff1f;二、使用步骤1.引入库2.基础使用3.进阶使用4.实用场景 总结 前言 BeanUtil.copyProperties的优化与使用 一、copyProperties是什么&#xff1f; 在java中&#xff0c;我们想要将一个类的值赋值…...

Redis基本操作及使用

&#x1f4d1;前言 本文主要是【Redis】——Redis基本操作及使用的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304;每日一…...

python 继承父类的变量和方法

[root@zz python]# cat a1.py # !/usr/bin/env python # -*- coding: utf-8 -*- class AddrBookEntry(object): ##类定义 def __init__(self,a,b): ##定义构造器 self.var1=a+9 self.var2=b+11 def updatePhone(self, num): # 定义方法 sel…...

ubuntu22.04新机使用(换源,下载软件,安装显卡驱动,锁屏长亮)

换源 国内有很多Ubuntu的镜像源&#xff0c;包括阿里的、网易的&#xff0c;还有很多教育网的源&#xff0c;比如&#xff1a;清华源、中科大源。推荐使用中科大源&#xff0c;快得很。 /etc/apt/sources.list编辑/etc/apt/sources.list文件, 在文件最前面添加以下条目(操作前…...

如何给shopify的网址做301跳转

很多shopify的运营者或者推广者由于缺货或者货物变更&#xff0c;又或者自己更换了使用的主题&#xff0c;导致自己的URL结构发生了变化&#xff0c;由于不想浪费掉自己原有URL 的流量&#xff0c;就想做个301跳转&#xff0c;让自己新的网址来承接原有的流量。接下来给大家介绍…...

Redis之秒杀系统

目录 Redis 秒杀 Mysql数据库设计 Mysql秒杀实现 MysqlRedis秒杀实现 秒杀是一种高并发场景&#xff0c;通常指的是在短时间内&#xff08;秒级别&#xff09;有大量用户同时访问某个商品或服务&#xff0c;争相抢购的情景。在这种情况下&#xff0c;系统需要处理大量并发请…...

c++基础----new

c基础----new 在C中&#xff0c;new是一个运算符&#xff0c;用于动态分配内存并返回指向该内存的指针。它可以用于创建单个对象、数组以及动态分配的对象。 下面是new的几种常见用法&#xff1a; 动态分配单个对象&#xff1a; int* ptr new int; // 动态分配一个int类型…...

Java中的mysql——面试题+答案(存储过程,外键,隔离级别,性能优化)——第23期

当涉及MySQL时&#xff0c;面试题的范围可以涵盖数据库设计、优化、复制、分片等方面。 什么是数据库范式&#xff1f;为什么要遵循数据库范式&#xff1f; 答案&#xff1a; 数据库范式是一组规范&#xff0c;用于设计关系数据库表的结构&#xff0c;以减少数据冗余和提高数据…...

一种新的基于物理的AlGaN/GaN HFET紧凑模型

标题&#xff1a;A new physics-based compact model for AlGaN/GaN HFETs (IEEE MTT-S International Microwave Symposium) 摘要 摘要 - 针对AlGaN/GaN HFET&#xff0c;提出了一种无拟合参数的物理解析模型。对于非饱和操作&#xff0c;建立了两个接入区和栅极下方I-V特性的…...

uniapp基础-教程之HBuilderX基础常识篇02

uniapp创建项目时属性多为vue后缀&#xff1b;其中每个文件中都包含了三段式结构分别是template&#xff1b;script&#xff1b;style形势&#xff0c;分别是前端显示的画面以及js和css样式。 template&#xff1a;说大白话就是给别人看的&#xff0c;我们打开页面就可以看到的…...

如何源码编译seaTunnel

如何源码编译seaTunnel 参考Set Up Develop Environment 编译前准备 下列软件需要提前安装好 GitJava ( JDK8/JDK11) 并设置JAVA_HOME 环境变量Scala (只支持 scala 2.11.12 )JetBrains IDEA . 下载源码并编译 git clone gitgithub.com:apache/seatunnel.git cd seatunne…...

msng病毒分析

这是一个非常古老的文件夹病毒&#xff0c;使用XP系统的文件夹图标&#xff0c;采用VB语言开发&#xff0c;使用了一种自定义的壳来保护&#xff0c;会打开网址http://www.OpenClose.ir,通过软盘、U盘和共享目录进行传播&#xff0c;会在U盘所有的目录下生成自身的副本&#xf…...

Unity安装

DAY1 下载Unity 打开Unity3D官网&#xff0c;下载Unity Hub&#xff0c;管理Unity的软件。链接https://unity.cn/releases (可能需要注册账号&#xff0c;就正常注册登录即可) 如果是新版的hub&#xff0c;可能长下面这个样子&#xff0c;还是英文的&#xff0c;点击圆圈的设…...

【代洋集团特惠好物:80瓦太阳能折叠包】

为您的绿色出行保驾护航&#xff01;代洋集团倾情推出80瓦太阳能折叠包&#xff0c;为您的户外活动提供清洁、便捷的电力支持。 这款太阳能折叠包采用高效能太阳能板&#xff0c;可折叠设计方便携带&#xff0c;轻松为您解决户外用电问题。80瓦的强大功率&#xff0c;让您在户…...

一致性Hash算法

Hash算法 哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值&#xff0c;这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。 Hash算法在安全加密领域MD5、SHA等加密算法&#xff0c;数据存储和查找的Hash表等方面均有应用。Hash表的数…...

AX-MES生产制造管理系统-总览

前言说起 MES 就不得不说 ERP&#xff0c;但是 ERP 大家基本上都知道&#xff0c;MES 就不一定了&#xff0c;常见的 ERP 系统包括 SAP、金蝶、用友等&#xff0c;ERP的流程相对来说也比较统一&#xff1b;MES就不同了&#xff0c;基本上熟悉业务流程的软件公司都可以开发并实施…...

从‘文件夹’到对象列表:手把手教你用MinIO Java Client实现灵活的文件查询与过滤

从‘文件夹’到对象列表&#xff1a;手把手教你用MinIO Java Client实现灵活的文件查询与过滤在当今数据驱动的时代&#xff0c;对象存储已成为现代应用架构中不可或缺的一部分。MinIO作为高性能、兼容S3协议的开源对象存储解决方案&#xff0c;凭借其轻量级和易用性赢得了众多…...

Redis沙盒体验:在浏览器中零门槛掌握NoSQL核心技能

Redis沙盒体验&#xff1a;在浏览器中零门槛掌握NoSQL核心技能 【免费下载链接】try.redis A demonstration of the Redis database. 项目地址: https://gitcode.com/gh_mirrors/tr/try.redis 当你第一次听说Redis时&#xff0c;是否被那些晦涩的技术术语吓退&#xff1…...

销售怎么通过各种方法获取电话号码

第一种就是那个用爬虫电话号码&#xff0c;然后再打电话给客户。第二种是在别人的挪车电话看车挪车电话&#xff0c;然后再打电话找客户。第三就是。扫楼一顿顿的扫&#xff0c;第四就是这个那种商店&#xff0c;一个个的去问陌拜地推一个个的问店子要不要贷款&#xff0c;去问…...

Burp Suite深度解析:从流量抓包到业务逻辑漏洞挖掘

1. 这不是“学个插件”——Burp Suite 是渗透测试的呼吸系统 很多人第一次听说 Burp Suite&#xff0c;是在某篇“三步拿下登录框”的速成教程里&#xff1a;装好Java、拖进浏览器代理、点几下Repeater就弹出密码明文。结果真去测一个中型SaaS后台&#xff0c;不到十分钟就卡在…...

HDI 高密度互连板阶数的深度理解

一、概述高密度互连板&#xff08;High Density Interconnector, HDI&#xff09;是通过激光微孔技术和逐层积层工艺实现高密度布线的印制电路板。其阶数划分是行业内统一的技术标准&#xff0c;核心依据为独立积层压合次数与配套激光盲孔制程次数&#xff0c;而非单面层数或钻…...

告别CAJ格式困扰:3分钟学会用开源工具将知网文献转为PDF

告别CAJ格式困扰&#xff1a;3分钟学会用开源工具将知网文献转为PDF 【免费下载链接】caj2pdf Convert CAJ (China Academic Journals) files to PDF. 转换中国知网 CAJ 格式文献为 PDF。佛系转换&#xff0c;成功与否&#xff0c;皆是玄学。 项目地址: https://gitcode.com/…...

第三卷第4章:原型模式设计思想

第三卷第4章:原型模式设计思想 目录介绍 01.案例引入与思考 1.1 痛点场景 1.2 它哪里不舒服 1.3 引出本篇主角 02.原型模式介绍 2.1 原型模式由来 2.2 原型模式定义...

在Hermes Agent项目中接入Taotoken作为自定义模型供应商

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Hermes Agent项目中接入Taotoken作为自定义模型供应商 基础教程类&#xff0c;针对使用Hermes Agent框架的开发者&#xff0c;详…...

BiliRoamingX:彻底解决B站体验限制的完整增强方案

BiliRoamingX&#xff1a;彻底解决B站体验限制的完整增强方案 【免费下载链接】BiliRoamingX-integrations BiliRoamingX integrations and patches powered by ReVanced. 项目地址: https://gitcode.com/gh_mirrors/bi/BiliRoamingX-integrations 你是否曾为B站的内容区…...