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

企业网站搜索优化网络推广网站首页的logo这么修改

企业网站搜索优化网络推广,网站首页的logo这么修改,wordpress投稿验证码,怎么学好网站建设移动零 文章目录移动零题目链接:[移动零](https://leetcode.cn/problems/move-zeroes/)题目解析:讲解算法原理双指针算法的介绍:(对于本题)双指针算法的效果:解题分析:解题代码:题目…

移动零

文章目录

  • 移动零
    • 题目链接:[移动零](https://leetcode.cn/problems/move-zeroes/)
    • 题目解析:
    • 讲解算法原理
      • 双指针算法的介绍:
      • (对于本题)双指针算法的效果:
      • 解题分析:
    • 解题代码:

题目链接:移动零

题目解析:

在这里插入图片描述
例如:[0,1,0,3,12],在不复制数组的情况下,对它进行操作,结果如下:
[1,3,12,0,0],可以看到,满足了题目的两个要求:

  1. 0 都在数组的末尾
  2. 非零元素的相对顺序,是有序的,由小到大

讲解算法原理

类似于这种对数组内容进行操作的题目,可以理解为 数组划分 或 数组分块 问题。

数组划分问题的特点:
给定一个数组,根据某种规则,将数组的内容,划分为若干个区间

例如这道 移动零 的题目:
给定一个数组:[0,1,0,3,12]
规则:非零元素移动到数组的左边0 移动到数组的右边(末尾),同时非零元素的相对顺序得保持。
在这里插入图片描述

解决这类题目,有一个很经典的算法:双指针算法

双指针算法的介绍:

这里的指针,不是 C语言 当中的指针

这里的指针,指的是 数组下标 来作为指针。因为数组里面,有个很好的特性,我们可以通过数组的下标,来索引(寻找)到数组的元素。

(对于本题)双指针算法的效果:

首先,先定义两个 int 类型的整数,作为指针

变量名是自定义的,这里使用 dest 和 cur 。
dest => destination 终点,目的地
cur => current 最近的
在这里插入图片描述

两个指针的作用:
cur:从左往右扫描数组,遍历数组
dest:已处理的区间内,非零元素的最后一个位置(作为一个分割线)

画一个图来展示这两个指针的作用:
在这里插入图片描述

利用这两个变量,将这个数组的内容划分为三个区间
第一个:[ 0,dest ] ,已经处理过的区间,里面全都是 非零元素
第二个:[ dest+1,cur-1 ] ,已经处理过的区间,里面全都是 0
第三个:[ cur,n-1 ] ,cur当前所指向的元素,是没有被处理过的元素,n-1 是因为数组的下标是从 0下标 开始的,下标的最大值为 数组元素个数(n)-1 ,这个区间表示的是待处理的元素

当 dest 和 cur 从左向右走的过程中,三个一直保持这样的性质的话,当 cur 这个指针 等于 n 时,也就是把整个数组扫描过一遍之后(cur == n),待处理的区间的没有了。
在这里插入图片描述

解题分析:

对这两个指针进行初始化:
cur:初始化为 0,因为它是要从左到右遍历整一个数组的。
dest:由于刚开始进行数组扫描的时候,是没有 非零元素 的,所以,初始化为 -1
在这里插入图片描述

算法演示:
在这里插入图片描述

解题代码:

//这是力扣提交的代码部分
class Solution {public void moveZeroes(int[] nums) {
//        刚开始时没有非零元素的,dest初始化为 -1int dest = -1;for(int cur = 0;cur < nums.length;cur++) {
//            由于遇到 0 ,不做处理,仅 cur++
//            而for循环结束的最后,就会进行 cur++
//            所以,仅需要处理遇到 非零元素 的情况if(nums[cur] != 0) {dest++;int tmp = nums[cur];nums[cur] = nums[dest];nums[dest] = tmp;}}}
}
http://www.dtcms.com/a/470800.html

相关文章:

  • fastapi集成各个组件
  • SLAM基础原理介绍
  • 如何利用网站新闻做推广成功营销网站
  • wordpress基础主题站wordpress order插件
  • 福建宁德建设局网站医院网站建设中标
  • 无锡网站制作8大米品牌推广方案
  • 网站开发实践意义seo招聘要求
  • 常州百度网站排名优化网站关键字怎么优化
  • 【Java数据结构】选择排序编码关键细节与避坑指南
  • 什么是企业营销型网站上海做网站的多吗
  • map与multimap
  • 从数据库直连到缓存预热:城市列表查询的性能优化全流程
  • 大兴做网站免费追剧的app下载
  • 建设一个网站需要哪些网站优化 北京
  • CSS 子元素宽高继承与盒模型规则
  • 学习随笔-回流和重绘
  • 石狮网站建设哪家好游戏网站开发有限公司
  • 英语—四级CET4考试—技巧篇—听力—第二步—画选项/做标记
  • 窗口函数之全窗口函数
  • vue前端面试题——记录一次面试当中遇到的题(4)
  • 广州做手机网站咨询网站如何做权重
  • scsi存储通信协议及其发展
  • 地税局内网网站建设深圳印刷网站建设
  • 【Typora——MD编辑器】Typora最新 V1.12.1版:轻量级 Markdown 编辑器详细图文下载安装使用教程
  • SAM-SAM2-SAM3系列(一):Segment Anything Model(SAM)技术详解与实战
  • 利用DeepSeek辅助生成股市行情模拟数据测试电子表格插件rusty_sheet 0.2多表读取功能
  • 包头建站东莞手机微信网站
  • 珠海手机网站建设广州建设网站公司
  • 网站综合查询工具建筑工程网教
  • 医院网站需要前置审批苏州网站网络营销推广