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

上海做门户网站的公司深圳网站建设资讯

上海做门户网站的公司,深圳网站建设资讯,佛山专业的网站建设,制作一个网站的费用是多少目录 双指针算法讲解 移动零 双指针算法讲解 常见的双指针有两种形式,一种是对撞指针,一种是快慢指针。 对撞指针:一般用于顺序结构中,也称左右指针。 对撞指针从两端向中间移动。一个指针从最左端开始,另一个从最…

目录

双指针算法讲解

移动零


双指针算法讲解

常见的双指针有两种形式,一种是对撞指针,一种是快慢指针。

对撞指针:一般用于顺序结构中,也称左右指针。

  1. 对撞指针从两端向中间移动。一个指针从最左端开始,另一个从最右端开始,然后逐渐往中间逼近。
  2. 对撞指针的终止条件一般是两个指针相遇或者错开(也可能在循环内部找到结果直接跳出循环),也就是:
    1. left == right (两个指针指向同一个位置)
    2. left > right (两个指针错开)

快慢指针:又称龟兔赛跑赛跑算法,其基本思想就是使用两个移动速度不同的指针在数组或链表等序列结构上移动

这种方法对于处理环形链表或数组非常有用。

其实不单单是环形链表或者是数组,如果我们要研究的问题出现循环往复的情况,均可考虑使用快慢指针的思想。

快慢指针的实现方式有很多种,最常用的一种就是:

·在一次循环中,每次让慢的指针向移动一位,而快的指针往后移动两位,实现一快一慢。

移动零

「数组分两块」是非常常见的一种题型,主要就是根据一种划分方式,将数组的内容分成左右两部分。这种类型的题,一般就是使用「双指针」来解决

题目链接:283.移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

解法:(快排的思想:数组划分区间-数组分两块):

算法思路:

在本题中,我们可以用一个 cur 指针来扫描整个数组,另一个 dest 指针用来记录非零数序列的最后一个位置。根据cur在扫描的过程中,遇到不同的情况,分类处理,实现数组的划分。以下是我们的目标

我们如何实现这种呢?

1.cur 指针的目的是遍历数组,那么cur指针一定是在数组首元素位置

2.既然cur指针在首元素,为了实现数组被划分三个阶段,那么des只能在cur之前的位置也就是 -1 处。

3.cur指针开始向后移动,为了实现【des+1 ,cur-1】中间是0,那么控制cur的条件就是,cur遇到0就跳过,也就是继续往前走。如果遇到了不是0,那么就将des+1,进行交换,交换后cur当前位置就变成了0,继续加加,直到遍历完数组。

因此可以简化思想:

cur 从前往后遍历过程中:

1.遇到0元素:cur++

2.遇到非0元素:1️⃣swap(++des;cur) 2️⃣ cur++

void moveZeroes(vector<int>& nums) {int cur = 0;int des = -1;while(cur < nums.size()){//cur是0就跳过if(nums[cur] == 0) cur++;else{//不是0就交换,在++swap(nums[++des],nums[cur]);cur++;}}
}

也可以用for循环

void moveZeroes(vector<int>& nums) {for(int cur = 0,des = -1;cur < nums.size();cur++){if(nums[cur])//处理非0元素{swap(nums[++des],nums[cur]);}}}

http://www.tj-hxxt.cn/news/108200.html

相关文章:

  • 佛山智唯网站建设百度灰色关键词排名
  • 内蒙古网站制作公司四川百度推广和seo优化
  • 网站怎么做footer抚顺优化seo
  • 如何用txt做网站时增加照片教育培训网
  • 宁波网站建设设计图成全在线观看免费高清动漫
  • 孝义网站开发公司长沙企业关键词优化哪家好
  • 哪些网站动效做的不错外链群发平台
  • 用于做分析图 的地图网站关键词自动优化
  • 国家电力安全网站两学一做seo建设
  • 用qq空间做网站seo推广策划
  • 怎么让网站被搜索到哪有学电脑培训班
  • 公司网站做首页大图百度搜索大全
  • 北京微信网站建设市场宣传推广方案
  • 天津市津南区教育网站建设招标win11优化大师
  • 汽车配件响应式网站长沙谷歌seo
  • 好玩网页游戏大全整站优化网站
  • 珠海专业网站制作公百度快速收录提交工具
  • 众创空间文化建设网站市场营销的八个理论
  • 娄底网站建设方案济南做seo的公司排名
  • 配置 tomcat 做网站长沙百度快速排名优化
  • access如何与网站连接数据库口碑营销的特征
  • 租车行网站模版yandex搜索入口
  • 适合医药公司做网站的图片百度营销是什么
  • 金融网站建设内容百度站长平台网站提交
  • 用第三方做网站关键词分类哪八种
  • 安徽专业网站建设创新简阳seo排名优化培训
  • 漏惹网站做seo搜索引擎优化步骤
  • 江苏网站建站系统哪家好怎样推广公司的网站
  • 网站颜色正确搭配实例公司注册
  • 如何搭建一个企业子账号网站手机建立一个免费网站