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

大型网站建设方案常见问题wordpress插件改图标

大型网站建设方案常见问题,wordpress插件改图标,社区电商网站设计,南通网络科技的公司网站欢迎来到 Claffic 的博客 #x1f49e;#x1f49e;#x1f49e; 前言#xff1a; 快慢指针指的是每次指针移动的步长#xff0c;是解决链表相关的题目的一大利器#xff0c;下面我将以例题的形式讲解快慢指针法。 目录 一. 链表的中间结点 思路#xff1a; 代码实… 欢迎来到 Claffic 的博客   前言 快慢指针指的是每次指针移动的步长是解决链表相关的题目的一大利器下面我将以例题的形式讲解快慢指针法。  目录 一. 链表的中间结点 思路 代码实现 二. 链表中倒数第k个结点 思路 代码实现 三.  判断链表中是否有环 思路 代码实现 四. 返回链表入环的第一个结点 思路 代码实现 一. 链表的中间结点 点我做题 思路 创建两个快慢指针 slow , fast 起始共同指向头节点slow 每次走一步fast 每次走两步当 fast 为空或 fast 的下一个结点为空时slow  即是中间节点的位置。 解释 由于 fast 每次走两步slow 每次走一步slow 总是落后 fast 整体一半的长度最终 slow 理应为中间结点。 结点数为奇数 最终 fast 在最后一个结点此时结束的标志为 fast-next NULL 结点数为偶数 最终 fast 在最后一个结点的下一个指向此时的结束标志为 fast NULL;  代码实现 struct ListNode* middleNode(struct ListNode* head){struct ListNode* slow,*fast;slow head;fast head;while(fast fast-next){slow slow-next;fast fast-next-next;}return slow; } 二. 链表中倒数第k个结点 点我做题 思路 同样创建两个快慢指针 slow , fast 起始共同指向头节点先让 fast 走 k 步再让 fast 和 slow 同时前进直到 fast 为空为止。 解释  先让 fast 走 k 步那么 fast 与 slow 之间就隔了 k-1 个结点fast 与 slow 同时前进直到 fast 为空时fast 与 slow 之间依然隔 k-1 个结点那就是倒数第 k 个结点。 代码实现 int kthToLast(struct ListNode* head, int k){struct ListNode* fast,*slow;fast slow head;if(head NULL){return NULL;}//fast 前进 k 步while(k--){fast fast-next;}//slow 与 fast 共同前进while(fast){slow slow-next;fast fast-next;}//注意返回的是整型数值return slow-val; } 三.  判断链表中是否有环 点我做题 思路 快慢指针 slow , fast都从 head 开始slow 一次走一步fast 一次走两步如果 slow 和 fast 能相遇则链表有环。 解释 主要是证明 有环情况下两个指针一定能相遇 fast 比 slow 先进入环如图假设 slow 和 fast 的位置这两个指针之间差 N 步 由于 fast 每次走两步slow 每次走一步所以 slow 和 fast 之间的距离每次缩短 1  N - 1 N - 2 N - 3 ... 2 1 0    //此时两者相遇 证毕。  代码实现 bool hasCycle(struct ListNode* head) {struct ListNode* fast,*slow;fast slow head;while(fast fast-next){slow slow-next;fast fast-next-next;if(fast slow){return true;}}return false; } 四. 返回链表入环的第一个结点 点我做题 思路 这里要先放一个结论 在链表有环的情况下一个指针在起始结点开始走另一个结点在相遇点开始走最终两个指针会在入环点相遇。 快慢指针 slow , fast都从 head 开始slow 一次走一步fast 一次走两步找到相遇点后再让 start 与 meet 同时前进两者相等的点即是入环点。 解释 自然要证明上边的结论 在这里我们设几个常量 L起始点到入环点的距离 X入环点到相遇点的距离 C环的周长。 已知条件 slow 走的距离L X fast 走的距离L n*C X (n 1) fast 走的长度是 slow 走的长度的 2 倍。 推导 fast 走的长度是 slow 走的长度的 2 倍 --  2*(L X)   L n*C X (n 1) 整理得L C - X (n - 1)*C  (n 1). 对 L C - X (n - 1)*C  (n 1) 的解释 C - X (n - 1)*C  (n 1) 原本是 meet 到 innode 要走的所有可能距离 而 L C - X (n - 1)*C  (n 1) 说明 start 到 innode 要走的距离与 meet 到 innode 要走的所有可能距离相等所以两者相遇的点一定是 innode. 代码实现 struct ListNode* detectCycle(struct ListNode *head) {struct ListNode* slow,*fast;slow fast head;while(fast fast-next){slow slow-next;fast fast-next-next;if(slow fast){struct ListNode* meet slow;struct ListNode* start head;while(meet ! start){meet meet-next;start start-next;}return meet;}}return NULL; } 总结 快慢指针是解决链表问题的一大利器建议多画图理解掌握。  码文不易  如果你觉得这篇文章还不错并且对你有帮助不妨支持一波哦
http://www.hkea.cn/news/14353126/

相关文章:

  • iis 网站制作阳江打卡网红店
  • 做跨境都有哪些网站南宁手机做网站设计
  • 网站首页设计网站建设需要资质么
  • rss网站推广法韩国最新新闻消息
  • 收录好的网站恢复原来的百度
  • 企业网站 程序免费咨询制度
  • 网站如何集成微信支付中国建设银行人才招聘网站
  • 个人做网站做什么样的话免费有效的推广平台
  • 建设厅网站上人员怎么导出如何增加网站转化率
  • 郑州七彩网站建设公司 概况青岛房产网
  • 做购物网站需要多少钱品牌vi设计有哪些内容
  • 均安网站建设赛博网站建设四川
  • 怎么在网站添加链接佛山市建设网站
  • 律师建网站电商网站设计公司排行榜
  • wordpress连接被重置网站怎么做关键词怎么优化
  • 公司网站建设设计方案建筑行业教育培训平台
  • 杭州网站建设q479185700惠地推网站信息怎么做
  • 做网站用哪个软件写比较好17做网店广州货源网
  • 电子商务网站建设与管理期末考试题十大接单推广app平台
  • 西安网站免费制作中国最大的私人定制公司
  • wordpress影视主体seo线下培训机构
  • 公司信息化网站建设实施方案网架加工图
  • 网站建设友汇51网站空间还有吗
  • 外国做问卷可以赚钱的网站太原房产网站建设
  • 做网站按什么收费多少钱五华区网站
  • 公司网站建设费用网络营销方式文献
  • 内蒙古城乡建设厅网站资质公告龙口网站建设公司报价
  • 上海建科建设监理网站wordpress多张页面左右滑动
  • 如何 网站收录网络服务机构
  • 沈阳网站关键词优化服务好厦门双瑞高磁网站是谁做的