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

网站网页价格百度收录网站的图片

网站网页价格,百度收录网站的图片,石家庄市建设局网站首页,防封号电销系统常见的双指针有两种形式,一种是对撞指针,一种是左右指针。 1.对撞指针:一般用于顺序结构中,也称左右指针。 *对撞指针从两端向中间移动。一个指针从最左段开始,另一个从最右端开始,然后逐渐往中间逼近 *对撞…

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

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

        *对撞指针从两端向中间移动。一个指针从最左段开始,另一个从最右端开始,然后逐渐往中间逼近

        *对撞指针的终止条件一般是两个指针相遇或者错开(也可能在循环内部找到结果直接跳出循环),也就是

                left == right  (两个指针指向同一个位置)

                left >right (两个指针错开)

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

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

        *如果要研究的问题出现循环往复的情况时,均可考虑使用快慢指针的思想

        *快慢指针的实现方法有很多种,最常用的一种就是:在一次循环中,每次让慢的指针向后移动一位,而快的指针向后移动两位,实现一快一慢

        这道题的意思是让0移到末尾,非0元素的相对位置并不发生改变,这道题的解法来源于快排的第三种写法,有兴趣的可以看看我以前的文章

        我们定义两个指针(并不是传统意义上的指针实际上只是数组的小标),cur和dest,我们需要保证的就是cur和dest之间的数全是0(就类似快排中两个指针中间的数全部大于选定的key),我们将cur初始化为0,dest可以初识化为-1(其他负数也可以,但是这样可以省去一些边界处理),这个初识化要保证一开始这个区间并不存在

        然后我们让cur向后走,如果遇到0直接++遇到非零让dest++并交换nums[left]和nums[right]。

        

class Solution {
public:void moveZeroes(vector<int>& nums) {int cur = 0,dest = -1;while(cur<nums.size()){if(nums[cur] != 0){swap(nums[++dest],nums[cur]);}cur++;}}
};

        这道题题的意思是遇到0将0后面的数向后移一位让后将0后空出来的位置填为0,这个题一开始我是想暴力的也是两个指针(up和down),但是还开了一个和arr一样大的vector,每次都让up向后走但终止条件时down越界,如果arr[up]是非零直接填到新开的表同时down++,如果arr[up] == 0就让down和down+1处的新开表的值为0然后down向后移两位。

        第二种方法是通过确定复写后的数组的最后一个元素的值,来在原表操作。

        确定最后一个元素的方法就是双指针,一个cur一个dest,dest表示已操作部分的末尾开始是因为没有已操作部分所以dest初始化为-1,cur初识化为0

        当arr[cur] == 0时dest+=2,否则dest++每次cur都需要++,如果dest>=arr.size()-1就结束循环

        如果这个时候dest == arr.size()就需要边界处理将arr[arr.size()] = 0,然后dest-=2,cur--

        然后开始复写arr

class Solution {
public:void duplicateZeros(vector<int>& arr) {int len = arr.size();int cur = 0,dest = -1;while(cur<len){if(arr[cur]) dest++;else dest += 2;if(dest >= len-1) break;cur++;}if(dest >= len){arr[len-1] = 0;cur--;dest-=2;}while(cur >= 0 && dest >= 0){if(arr[cur]) arr[dest--] = arr[cur];else{arr[dest--] = 0;arr[dest--] = 0;}cur--;}}
};


文章转载自:

http://IOmXJxwX.bfkrf.cn
http://a8gtpQZt.bfkrf.cn
http://qjqTh6V2.bfkrf.cn
http://bgli0o32.bfkrf.cn
http://bEUP96le.bfkrf.cn
http://qhptBGbB.bfkrf.cn
http://pxt5S5of.bfkrf.cn
http://KfkE8XeV.bfkrf.cn
http://WFMIdxyv.bfkrf.cn
http://22dxdMgS.bfkrf.cn
http://6V09yxIX.bfkrf.cn
http://V5TieWFK.bfkrf.cn
http://F27zX7zE.bfkrf.cn
http://N4naIfck.bfkrf.cn
http://ausqnUBY.bfkrf.cn
http://KH1kL8Sk.bfkrf.cn
http://NOOQADE2.bfkrf.cn
http://gltzKSqb.bfkrf.cn
http://HFJBN3zH.bfkrf.cn
http://CwK5MRh5.bfkrf.cn
http://YKwn5Skn.bfkrf.cn
http://Q6N8J57z.bfkrf.cn
http://1IhdmOZt.bfkrf.cn
http://Avl0lJYd.bfkrf.cn
http://RiTcNTaB.bfkrf.cn
http://4paSVdms.bfkrf.cn
http://7WS6C1kq.bfkrf.cn
http://l4vJtQcy.bfkrf.cn
http://jupYEYIC.bfkrf.cn
http://VYFO7uSr.bfkrf.cn
http://www.dtcms.com/wzjs/727206.html

相关文章:

  • 哪些网站做的不好北京广告设计公司哪家好
  • weex做的网站怎么用手机做网站教程
  • 网站开发社区百度代运营
  • 大连企业网站排名网站logo用什么做
  • 怎样才能创建网站网页设计实训报告的目的
  • 聊城网站推广WordPress VIP充值
  • 做百度移动端网站软件wordpress page模板页
  • 网站建设管理考核办法wordpress文章排列顺序
  • 能打开各种网站的浏览器推荐公司网站管理规定
  • 网站建设公司 成本结转新能源电动汽车价格表
  • 虚拟空间可以做视频网站么做网站的准备什么
  • 设计商城网站建设义乌廿三里
  • 英文网站title镇江市建设招标网官方网站
  • 网站的流程网站怎样做银联支付
  • 做网站建设电话销售wordpress无法打开
  • 让网站百度不到不备案网站怎么做淘宝客
  • 自命题规划一个企业网站oa办公软件
  • 做ppt的软件模板下载网站wordpress如何配置伪静态页面
  • 什么网站可以找人做系统怎么外贸网站推广
  • 网站费用预算工程造价价格信息网
  • 网站建设主要干什么永春网站开发
  • 怎么给甲方做网站备案自己架设网站
  • 福州网站设计要多少钱新郑网站建设
  • 邯郸有建网站吗哪个公司好些互联网营销师考试题库
  • 商城网站建设的注意事项做网站需要准备哪些东西
  • 那些知名网站是外包做的网站估值
  • php网站后台密码破解程序wordpress xsind
  • 公司做网站文案怎么写新浪博客导入wordpress
  • 个人网站备案icp企业网站建设 骆
  • 一个后台可以做几个网站可以将自己做的衣服展示的网站