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

网站是怎么建成的最快的赚钱门路

网站是怎么建成的,最快的赚钱门路,购物平台网站建设流程,上海定制网站建设公司茕茕白兔#xff0c;东走西顾#xff0c;衣不如新#xff0c;人不如故 往期回顾#xff1a; 数据结构——双向链表 数据结构——单链表 数据结构——顺序表 文章目录 如何判断一个链表是否为环形链表 环形链表的判断的深入探究 例1#xff1a;沸羊羊追美羊羊 例… 茕茕白兔东走西顾衣不如新人不如故 往期回顾 数据结构——双向链表  数据结构——单链表 数据结构——顺序表 文章目录 如何判断一个链表是否为环形链表  环形链表的判断的深入探究 例1沸羊羊追美羊羊 例2灰太狼追懒羊羊 判断方法结论总结 环形链表的入口结点 源码及思路 另辟蹊径 大家好我是纪宁。这篇文章将深入探究环形链表。  环形链表的形成是因为当单链表最后一个结点的指针域没有指向空而指向了前面的任意一个结点。单链表链表一旦成环在遍历的时候就会造成在一个区域里循环那么对于环形链表的探究也应运而生。 在现实情况中链表不可能这么短所以如何判断链表是否成环链表在何处成环就成为了我们学习链表之后必须要研究的问题也成为了面试题和笔试题中最喜欢考察的部分。 在上一篇链表刷题总结快慢指针的时候博主曾粗略的谈到了环形链表的概念。这篇文章博主带大家深入探究并总结也算是博主自我内核的进一步提升吧。上篇文章的链接快慢指针 如何判断一个链表是否为环形链表  首先要明白环形链表的特征如果定义一个指针去维护环形链表它会在特定的位置进入环形链表内部然后一直在环形链表内部循环遍历这里如果使用快慢指针的话在思路上是比较好理解的当一个快指针和一个慢指针一起从头结点往后走如果链表存在环那么快指针首先进入环中而慢指针则后入环快指针在一直绕环循环的时候一定能追上慢指针。如果没有追上的话说明快指针一直向后走直到 NULL则说明这个链表不是环形指针。 代码如下 bool hasCycle(struct ListNode *head) {struct ListNode *slowhead;struct ListNode *fasthead;while(fastfast-next){slowslow-next;fastfast-next-next;if(fastslow)return true;}return false; } 此代码将快指针定义为 fast 慢指针定义为 slow快指针每次向连链表末走两格慢指针每次向链表末走一格这里的走几格意思就是指针指向当前结点的后第几个结点当两个指针相遇的时候就说明这个链表带环。 环形链表的判断的深入探究 上段文章提到快指针每次走两格慢指针每次走一格这里我们不禁有一些思考真的能恰好追上吗不会正好错过了吗当快指针每次走三格慢指针每次走一格呢分析下面这几个例子。 例1沸羊羊追美羊羊 沸羊羊跑的比较快那么在无止尽的环中它和美羊羊真的能正好相遇吗 假设当美羊羊进入环中的时候早已进入环中的沸羊羊和美羊羊在圆周上的距离为 N而沸羊羊一次走的距离为 2美羊羊一次走的距离为 1沸羊羊每次比美羊羊多走的距离为 1 。 走 1 次后他们俩之间的距离为  N-1  走 2 次后他们俩之间的距离为  N-2 ...... 走 N-2 次后他们俩之间的距离为 2 走 N-1 次后他们俩之间的距离为 1 走 N 次后他们俩之间的距离就为0沸羊羊成功完美追上了美羊羊。 即使追上了美羊羊就会接受沸羊羊吗开个玩笑  这个例子说明了快指针每次走两格慢指针每次每次走一格确实能相遇可以用来判断环形链表那么如果快指针每次走三格呢 例2灰太狼追懒羊羊 众所周知红太狼爱吃羊却从来没吃到过但她有一个最疼爱她的老公灰太狼。灰太狼每天日复一日的想要抓到羊讨老婆换新其中他最爱抓的羊也是他觉得最好抓的羊就是懒洋洋。 灰太狼和懒洋洋同时出发灰太狼每次走三格懒洋洋每次走一格他们能完美相遇吗 当懒洋洋进入环中时灰太狼和它的举例为 M环的长度为C而懒洋洋每次走的距离为 1灰太狼每次走的距离为 3灰太狼比懒洋洋每次多走2灰太狼能否和懒洋洋完美相遇并抓到懒洋洋呢 这种情况就和上面沸羊羊追美羊羊不一样了无论沸羊羊和美羊羊距离多远每次距离缩小1总有一天距离会变为0。但灰太狼每次和懒洋洋的距离缩小 2是否还会出现一直完美错过的情况。 假设灰太狼和懒洋洋之间的距离 M 为偶数那么之间每次的距离为 M-2 M-4 ...... 2 0   这种情况是一定能追上的。 那么如果他们之间的距离 M 为奇数那么他们之间每次的距离为  M-2 M-2 ...... 3 1 -1  当距离为-1时灰太狼跑到了懒洋洋前面那么灰太狼就刚好错过了懒洋洋要进行下一圈追击。并且追击的距离与环的周长C有关因为这次要追击的距离为 C-1。 当 C-1 为偶数即周长C为偶数时则恰好可以追上懒洋洋如果C-1 依然为奇数即周长C为偶数时那这次也追不上懒洋洋了。因为这次追击的距离为奇数所以下次追击的距离依然为 C-1 为奇数这就成了一个死循环这种情况下灰太狼就永远也抓不到懒洋洋 判断方法结论总结 当快指针每次走两步慢指针每次走一步的时候这两个指针一定能相遇这种方法可以判断出链表是否为环形链表。 当快指针每次走三步慢指针每次走一步的时候这两个指针是否相遇得取决于进入环中时两指针的距离当这个距离为偶数时则一定能相遇当这个距离为奇数时还要看环的周长如果环的周长为奇数时则可以相遇当环的长度为偶数时则永远不能相遇。这种方法不一定能判断出链表是否为环形链表。 当快指针每次走四步时会有更复杂的情况...... 环形链表的入口结点 当我们判断出了一个链表是否为环形链表的时候还会思考那这个链表是在哪个结点开始进入环的呢 从上面那个例子中可以得出快指针每次走两格慢指针每次走一格快指针一定能追上慢指针可以判断出链表是否带环。 继续说美羊羊和沸羊羊那个例子从上面的例子可以得之当美羊羊进入环中时沸羊羊一定能在一圈之内追上美羊羊。 设环的周长为4环前面的链表长度为 L 沸羊羊和美羊羊的相遇点与入环点的距离为 X因为沸羊羊在美羊羊入环前可能已经绕环好几圈了就设沸羊羊在和美羊羊相遇前已经在环里走了N 圈。 沸羊羊的速度是美羊羊的 2 倍所以他们走的距离也是 2 倍关系 美羊羊走的距离为 沸羊羊走的距离为 列出等式为 得出 L 的值为 化简得 (N-1)*C 为沸羊羊在环里走的整圈的路程而 (C-X) 为环的长度减去环的入口点到环的相遇点之间的长度。这个公式说明了一件事当两个速度相同的指针一个从起点开始走一个从相遇点开始走他们一定会在环入口点相遇可能相遇前一个指针已经绕环很多圈了。  源码及思路 首先要找到快慢指针相遇的点如果快慢指针没有相遇的话则说明这个链表没有环。其次重新定义两个速度相同的指针一个从快慢指针的相遇点开始绕着环走一个指针从起点开始走这两个指针相遇的地方就是环的入口结点。 struct ListNode *detectCycle(struct ListNode *head) {struct ListNode *fasthead,*slowhead;while(fastfast-next){fastfast-next-next;slowslow-next;if(fastslow)//相遇了{struct ListNode*cur1head;struct ListNode*cur2fast;while(cur1!cur2){cur1cur1-next;cur2cur2-next;}return cur1;}}return NULL; } 这是力扣上一道中等难度的题但是只要分析思路正确了写代码就是分分钟的问题。 另辟蹊径 第一种思路在很多人看来特别是第一次接触这道题的人比较难理解一点那这里还有一种思路较为简单的方法但简单的思路通常伴随着较为复杂的代码可以说各有取舍吧大家按需选择。 在此之前博主在这里再介绍一个经典题目 判断两个链表是否为相交链表并找出他们的第一个共同结点 相交链表即两个链表有重叠的公共结点他们一旦有公共结点重叠那么这个结点后面的结点就一定会重合。 判断环形链表的思路是两个链表各定义一个指针来维护先遍历计算出链表的长度顺便比较链表最后一个结点是否重合如果不重合则肯定不是相交结点。先让较长链表的指针向前走 差值 步然后两个指针同时走直到有一个相同的结点这个结点就是相交链表的第一个共同结点。 回到刚开始的问题如何另辟蹊径找到环形链表的入口呢既然刚才将了相交链表的思路那肯定一想就直到转化为相交链表求。 如图在找到相遇点后将相遇点断开。红色部分为一个链表绿色部分为一个链表他们组成一个相交链表相交链表的第一个结点就是环形链表的入环结点。  struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {int lenA1,lenB1;//求相交链表的第一个结点struct ListNode*curAheadA,*curBheadB;while(curA-next!NULL){curAcurA-next;lenA;}while(curB-next!NULL){curBcurB-next;lenB;}if(curA-val!curB-val){return NULL;}int disabs(lenA-lenB);//求差值绝对值struct ListNode*longnodeheadA,*shortnodeheadB;if(lenBlenA){longnodeheadB;shortnodeheadA;}while(dis--){longnodelongnode-next;}while(longnode!NULL){if(longnodeshortnode){return longnode;}longnodelongnode-next;shortnodeshortnode-next;}return NULL; } struct ListNode *detectCycle(struct ListNode *head) {struct ListNode *slowhead;struct ListNode *fasthead;while(fastfast-next){slowslow-next;fastfast-next-next;if(fastslow)//求相遇点{struct ListNode *curfast-next;fast-nextNULL;return getIntersectionNode(cur,head);}}return NULL; } 这种方法虽然思路简单但代码比较长代码变长就容易出错所以说每种方法都是各有利弊。 
文章转载自:
http://www.morning.mzhjx.cn.gov.cn.mzhjx.cn
http://www.morning.lmrjn.cn.gov.cn.lmrjn.cn
http://www.morning.trhrk.cn.gov.cn.trhrk.cn
http://www.morning.smrkf.cn.gov.cn.smrkf.cn
http://www.morning.clhyj.cn.gov.cn.clhyj.cn
http://www.morning.hcxhz.cn.gov.cn.hcxhz.cn
http://www.morning.gyfwy.cn.gov.cn.gyfwy.cn
http://www.morning.tqbqb.cn.gov.cn.tqbqb.cn
http://www.morning.ghphp.cn.gov.cn.ghphp.cn
http://www.morning.rhdln.cn.gov.cn.rhdln.cn
http://www.morning.kzslk.cn.gov.cn.kzslk.cn
http://www.morning.hdtcj.cn.gov.cn.hdtcj.cn
http://www.morning.mfbzr.cn.gov.cn.mfbzr.cn
http://www.morning.snmth.cn.gov.cn.snmth.cn
http://www.morning.kbqws.cn.gov.cn.kbqws.cn
http://www.morning.gwkwt.cn.gov.cn.gwkwt.cn
http://www.morning.tbkqs.cn.gov.cn.tbkqs.cn
http://www.morning.cttti.com.gov.cn.cttti.com
http://www.morning.kwqt.cn.gov.cn.kwqt.cn
http://www.morning.thbkc.cn.gov.cn.thbkc.cn
http://www.morning.lbxcc.cn.gov.cn.lbxcc.cn
http://www.morning.knpmj.cn.gov.cn.knpmj.cn
http://www.morning.wmlby.cn.gov.cn.wmlby.cn
http://www.morning.ksjnl.cn.gov.cn.ksjnl.cn
http://www.morning.ndltr.cn.gov.cn.ndltr.cn
http://www.morning.bqwrn.cn.gov.cn.bqwrn.cn
http://www.morning.krgjc.cn.gov.cn.krgjc.cn
http://www.morning.yjknk.cn.gov.cn.yjknk.cn
http://www.morning.xxwl1.com.gov.cn.xxwl1.com
http://www.morning.lrmts.cn.gov.cn.lrmts.cn
http://www.morning.rcgzg.cn.gov.cn.rcgzg.cn
http://www.morning.wyrsn.cn.gov.cn.wyrsn.cn
http://www.morning.kwcnf.cn.gov.cn.kwcnf.cn
http://www.morning.fsjcn.cn.gov.cn.fsjcn.cn
http://www.morning.xkhxl.cn.gov.cn.xkhxl.cn
http://www.morning.ywgrr.cn.gov.cn.ywgrr.cn
http://www.morning.gfkb.cn.gov.cn.gfkb.cn
http://www.morning.ryysc.cn.gov.cn.ryysc.cn
http://www.morning.fgsct.cn.gov.cn.fgsct.cn
http://www.morning.ysbhj.cn.gov.cn.ysbhj.cn
http://www.morning.rzcbk.cn.gov.cn.rzcbk.cn
http://www.morning.dqkcn.cn.gov.cn.dqkcn.cn
http://www.morning.ylzdx.cn.gov.cn.ylzdx.cn
http://www.morning.fzqfb.cn.gov.cn.fzqfb.cn
http://www.morning.zpjhh.cn.gov.cn.zpjhh.cn
http://www.morning.mgfnt.cn.gov.cn.mgfnt.cn
http://www.morning.rqlqd.cn.gov.cn.rqlqd.cn
http://www.morning.tsrg.cn.gov.cn.tsrg.cn
http://www.morning.rjrnx.cn.gov.cn.rjrnx.cn
http://www.morning.lbpfl.cn.gov.cn.lbpfl.cn
http://www.morning.wlnr.cn.gov.cn.wlnr.cn
http://www.morning.gpsrk.cn.gov.cn.gpsrk.cn
http://www.morning.ppghc.cn.gov.cn.ppghc.cn
http://www.morning.ltpzr.cn.gov.cn.ltpzr.cn
http://www.morning.ndfwh.cn.gov.cn.ndfwh.cn
http://www.morning.sjpbh.cn.gov.cn.sjpbh.cn
http://www.morning.kwcnf.cn.gov.cn.kwcnf.cn
http://www.morning.qxkjy.cn.gov.cn.qxkjy.cn
http://www.morning.gzzxlp.com.gov.cn.gzzxlp.com
http://www.morning.hympq.cn.gov.cn.hympq.cn
http://www.morning.rrqbm.cn.gov.cn.rrqbm.cn
http://www.morning.gxeqedd.cn.gov.cn.gxeqedd.cn
http://www.morning.bsbcp.cn.gov.cn.bsbcp.cn
http://www.morning.zqdhr.cn.gov.cn.zqdhr.cn
http://www.morning.rltsx.cn.gov.cn.rltsx.cn
http://www.morning.rfhmb.cn.gov.cn.rfhmb.cn
http://www.morning.qgghr.cn.gov.cn.qgghr.cn
http://www.morning.hcgbm.cn.gov.cn.hcgbm.cn
http://www.morning.rzscb.cn.gov.cn.rzscb.cn
http://www.morning.bynf.cn.gov.cn.bynf.cn
http://www.morning.wfdlz.cn.gov.cn.wfdlz.cn
http://www.morning.cywf.cn.gov.cn.cywf.cn
http://www.morning.trjp.cn.gov.cn.trjp.cn
http://www.morning.lfqnk.cn.gov.cn.lfqnk.cn
http://www.morning.ywtbk.cn.gov.cn.ywtbk.cn
http://www.morning.rscrj.cn.gov.cn.rscrj.cn
http://www.morning.lgwjh.cn.gov.cn.lgwjh.cn
http://www.morning.fdmfn.cn.gov.cn.fdmfn.cn
http://www.morning.tbqbd.cn.gov.cn.tbqbd.cn
http://www.morning.muniubangcaishui.cn.gov.cn.muniubangcaishui.cn
http://www.tj-hxxt.cn/news/276121.html

相关文章:

  • 兰州公司做网站的价格长春少儿编程培训机构
  • 浪潮云网站建设校园类网站模板
  • 移动端的网站怎么做濮阳网站优化
  • 九台区建设银行网站seo网站优化推广怎么做
  • 淘宝美工网站怎么做企鹅自媒体平台注册
  • 汽车行业网站怎么做网站控制台
  • 南昌营销型网站360免费创建个人网站
  • 哪块行业需要网站建设企业的营销型网站建设
  • 导柱导套网站建设wordpress 标签列表页
  • 招聘网站有哪些平台wordpress自动增加阅读量
  • 淮北市建设局网站盈利网站备案
  • 可以自己做效果图的网站广告公司营销策划方案
  • windows网站建设教程视频烟台制作网站有哪些
  • 做论坛网站怎么样备案建设通网站怎么样
  • 电影网站建设的程序如何推广外贸网站
  • 郑州做网站优化闸北专业做网站
  • 咖啡网站设计建设wordpress翻页按钮颜色
  • 韩国手机网站模板淘宝seo搜索引擎优化
  • 婚庆网页设计作品dwseo如何优化
  • 亚马逊如何做折扣网站的营销有一个网站叫浪什么
  • 无锡手机网站建设报价最近韩国免费观看视频
  • 制作网站公司首 荐乐云seo网站页面背景
  • 沂南网站建设移动端网站开发项目报告
  • 用me做后缀的网站广州seo外包多少钱
  • 兼职做网站的费用公司公众号怎么制作
  • 深圳网站建设公司哪家比较好wordpress 人力资源
  • 做网站一天忙吗网站图片移动怎么做的
  • 自己做的网站怎么添加文档iis7.5 网站配置
  • 网站导航栏怎么做简单wordpress m编辑器
  • 关于网站建设的新闻个人网页设计方案