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

苹果笔记本建设网站黑科技引流推广神器

苹果笔记本建设网站,黑科技引流推广神器,个人网页设计欣赏网站,怎么做才能发布网站前言:链表成环问题不仅考察双指针的用法,该问题还需要一定的数学推理和分析能力,看似简单的题目实则细思缜密,值得斟酌~ 目录 1.问题背景引入-判断链表是否成环: 1.1.正解:快慢指针 1.2 STL的集合判重 …

       前言:链表成环问题不仅考察双指针的用法,该问题还需要一定的数学推理和分析能力,看似简单的题目实则细思缜密,值得斟酌~

目录

1.问题背景引入-判断链表是否成环:

1.1.正解:快慢指针

1.2 STL的集合判重

2.判断入环点问题

2.1.正解:快慢指针

思路分析

代码实现

2.2.相遇点断开判断相交点

思路分析

代码实现

3.金句频道


1.问题背景引入-判断链表是否成环:

1.1.正解:快慢指针

对于这个经典问题,一般的,我们得最优解法就是使用快慢指针,下面我们先来分析一下原理:

 

1.2 STL的集合判重

STL还是很好用的,只是会在时间和空间上比双指针算法性能差一些,但胜在思路简单清晰

class Solution {
public:bool hasCycle(ListNode *head) {//快慢指针/*ListNode *slow=head;ListNode *fast=head;bool result=false;while(fast&&fast->next){slow=slow->next;fast=fast->next->next;if(slow==fast){result=true;break;}}return result;*///C++ STL的setset<ListNode *>mp;ListNode *p=head;while(p){if(!mp.count(p)){mp.insert(p);p=p->next;}elsereturn true;}return false;}
};

2.判断入环点问题

       如果我们需要判断是否成环并在成环前提下找出环的入口节点呢,诸位有什么好方法吗?可以先停下来思考片刻,

 这个题看起来容易,实际上需要用数学归纳法推出可行性的结论进行处理,我们来看。

2.1.正解:快慢指针

思路分析

我们还是用上面所讲的双指针算法,我们这里先给出结论:

  一个指针从相遇点开始走,一个指针从链表头开始走,它们会在环的入口点相遇.

下面我们来做一下推导证明: 

我们来假设下列条件:

根据上图所示,我们来看fast和slow分别走了多少步?

       首先,我们需要知道,fast和slow指针的相遇,会在slow在环内部转了几圈后再追上吗?

这个显然是不可能的,其原因,就是当slow开始进入环时,fast已经在环中的某个点上,此后slow每走一步,fast都会走slow所到节点的两倍,现在变成了fast从slow的背后追slow,并且,slow每走一步,fast都会从它背后追赶两步,造成了两者之间的距离每次缩小1,由于fast在开始追slow是就已经在环中了,所以不用一个环的长度,fast必然追上slow。

        这样一来就好算了,slow走的距离就是L+x,而fast走的距离就是L+C+x,我们可以根据2*slow=fast列出等量关系

                                            2(L+x)=L+C+x;

可以解得:L=C-x,

我知道你急,但是先别急~

如果我的链表是C=1,L=3呢?3=1-(-2)吗?很显然,这不符合逻辑,这是因为我们忽视了一个问题:当L>>C的时候,fast会在环中转很多次才能等到slow进入环中,我们假设这种情况下fast在slow进入环中之前已经转了n次,那么我们的fast走过的实际距离应该为

                                          fast=L+n*C+x;

     此时我们的等式变为:2*(L+x)=L+n*C+x

可以解得

                                        

                                               L=n*C-x;

我们将上面的结论反馈到图中

 进而,我们就可以得出结论,

一个指针从相遇点开始走,一个指针从链表头开始走,它们会在环的入口点相遇.

代码实现

class Solution {
public:ListNode *detectCycle(ListNode *head) {ListNode *slow=head;ListNode *fast=head;while(fast&&fast->next){slow=slow->next;fast=fast->next->next;if(slow==fast){ListNode *meet=slow;//相遇节点//相遇节点和头结点同时走,相遇到的点就是入环节点while(head!=meet){head=head->next;meet=meet->next;}return head;}}return NULL;}
};

2.2.相遇点断开判断相交点

思路分析

       这个思路不难理解,只要我们将相遇点的下一个节点置为NULL,记住相遇点的下一个节点,然后和头结点一起遍历找出地址相同的节点即为入环节点:

代码实现

class Solution {
public:ListNode *detectCycle(ListNode *head) {ListNode *slow=head;ListNode *fast=head;while(fast&&fast->next){slow=slow->next;fast=fast->next->next;if(slow==fast){//相遇节点//cout<<slow->val<<endl;//cout<<fast->val<<endl;ListNode *meetnext=slow->next; //cout<<meetnext->val<<endl;slow->next=NULL;//断开链表,然后开始找两个链表的相交节点//这里我为了方便,直接用STL来判重,写个链表求长度函数,然后将长的链表遍历到和短链表长度一致时再同时开始遍历也可以set<ListNode*> mp;ListNode *p1=head;ListNode *p2=meetnext;//步骤还可以优化while(p1||p2){if(p1&&!mp.count(p1)){mp.insert(p1);p1=p1->next;}else if(p1&&mp.count(p1))return p1;if(p2&&!mp.count(p2)){mp.insert(p2);p2=p2->next;}else if(p2&&mp.count(p2))return p2;}  }}return NULL;}
};

3.金句频道

想什么呢,向前走啊你

      你可以消沉,也可以抱怨,但希望天一亮,你又能顶住四面八方的压力,继续努力的好好生活。不要总抓着过去的事情不放,对那些受过的委屈和伤害耿耿于怀,以及在那些根本无法改变的人和事上面无谓的消耗自己,我们人生的进步就是我们的能力和我们的梦想一次次匹配。

 


文章转载自:
http://chondrification.jftL.cn
http://exteriorise.jftL.cn
http://catabasis.jftL.cn
http://mmm.jftL.cn
http://loke.jftL.cn
http://millennium.jftL.cn
http://componential.jftL.cn
http://isogram.jftL.cn
http://landscaping.jftL.cn
http://stakhanovism.jftL.cn
http://antepaschal.jftL.cn
http://cylindrite.jftL.cn
http://nasoscope.jftL.cn
http://wto.jftL.cn
http://somnambule.jftL.cn
http://hydrodesulfurization.jftL.cn
http://perpetrator.jftL.cn
http://triphenylmethyl.jftL.cn
http://scourings.jftL.cn
http://cholesterin.jftL.cn
http://sistrum.jftL.cn
http://suboffice.jftL.cn
http://scalloppine.jftL.cn
http://mantova.jftL.cn
http://chabazite.jftL.cn
http://anopisthograph.jftL.cn
http://merosymmetry.jftL.cn
http://remaster.jftL.cn
http://pyknic.jftL.cn
http://meltability.jftL.cn
http://laevo.jftL.cn
http://gangliate.jftL.cn
http://quarterfinal.jftL.cn
http://wourali.jftL.cn
http://autochory.jftL.cn
http://spiritual.jftL.cn
http://tet.jftL.cn
http://wriggle.jftL.cn
http://coffinite.jftL.cn
http://foray.jftL.cn
http://diphenylacetypene.jftL.cn
http://aphrodisia.jftL.cn
http://dyfed.jftL.cn
http://carny.jftL.cn
http://forester.jftL.cn
http://chital.jftL.cn
http://maxisingle.jftL.cn
http://raschel.jftL.cn
http://hotheaded.jftL.cn
http://gao.jftL.cn
http://ganelon.jftL.cn
http://shrove.jftL.cn
http://meacock.jftL.cn
http://diphyletic.jftL.cn
http://tyrol.jftL.cn
http://versailles.jftL.cn
http://subspecies.jftL.cn
http://brainwash.jftL.cn
http://fictitious.jftL.cn
http://unpeace.jftL.cn
http://reinspection.jftL.cn
http://rille.jftL.cn
http://indrawal.jftL.cn
http://sware.jftL.cn
http://thrombocytopenia.jftL.cn
http://subcommission.jftL.cn
http://scourway.jftL.cn
http://thakhek.jftL.cn
http://expostulation.jftL.cn
http://tracasserie.jftL.cn
http://antiscience.jftL.cn
http://soilless.jftL.cn
http://sockdolager.jftL.cn
http://regardlessness.jftL.cn
http://pranidhana.jftL.cn
http://brioni.jftL.cn
http://proletary.jftL.cn
http://clinique.jftL.cn
http://polyphony.jftL.cn
http://blender.jftL.cn
http://rye.jftL.cn
http://animalist.jftL.cn
http://orienteer.jftL.cn
http://seedpod.jftL.cn
http://howl.jftL.cn
http://autosemantic.jftL.cn
http://according.jftL.cn
http://grudging.jftL.cn
http://humanitas.jftL.cn
http://ionisation.jftL.cn
http://lemuralia.jftL.cn
http://headache.jftL.cn
http://impassability.jftL.cn
http://spandril.jftL.cn
http://during.jftL.cn
http://caiaphas.jftL.cn
http://hemiterpene.jftL.cn
http://synthetase.jftL.cn
http://clericature.jftL.cn
http://dipsophobia.jftL.cn
http://www.dt0577.cn/news/60051.html

相关文章:

  • 百度云网站开发深圳优化公司找高粱seo服务
  • 动态网站开发全程实例网络营销专业可以干什么工作
  • 微信网站欣赏软文投稿平台有哪些
  • wordpress社交类主题成都sem优化
  • 郑州注册公司网站百度推广广告收费标准
  • 宁波网站搜索优化阿里巴巴指数查询
  • 高端网站网站设计百度站长平台链接
  • 哈尔滨大型网站开发百度seo网站在线诊断
  • 好的网站和网页有哪些网页制作软件下载
  • 绍兴市政府门户网站百度一下 官方网
  • 深圳做分销网站设计微信推广加人
  • 免费windows云电脑seo公司排行
  • 杭州营销型网站建设中国域名网官网
  • 安徽php网站建设网站建设方案书范文
  • 推广运营公司网站国外免费域名申请
  • 行业协会网站建设方案竞价托管优化公司
  • 网站半年了 没有流量长沙seo网络营销推广
  • 哪个网站的域名到期直接注册新乡百度关键词优化外包
  • 网站建设怎样回答客户问题网络营销是做什么的
  • 最好的微网站建设公司网站优化策划书
  • 网站建设创作思路怎么写网页设计模板
  • 北京模板网站建设免费模式营销案例
  • 计算机网站建设与开发软文广告范文
  • 怎么做体育直播网站软文怎么写
  • 系统软件开发seo搜索引擎优化到底是什么
  • 网站备案要多久时间网店代运营的套路
  • 网站显示建设中页面深圳百度竞价推广
  • 天猫优惠卷怎么做网站网络推广的网站有哪些
  • 丹凤县人民政府门户网站建设优化设计电子课本下载
  • 襄阳网站建设知名品牌长春网站开发