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

凡客做网站公司建设网站的服务费

凡客做网站,公司建设网站的服务费,网站 关键词 出现频率,lnmp lamp wordpress#x1f493; 博客主页#xff1a;倔强的石头的CSDN主页 #x1f4dd;Gitee主页#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏#xff1a;《数据结构与算法 经典例题》C语言 期待您的关注 ​ 目录 一、问题描述 二、解题思路 方法一#xff1a;数学公式推导法 方法…               博客主页倔强的石头的CSDN主页               Gitee主页倔强的石头的gitee主页    ⏩ 文章专栏《数据结构与算法 经典例题》C语言                                   期待您的关注 ​ 目录 一、问题描述 二、解题思路 方法一数学公式推导法 方法二转换为相交链表问题求解 三、代码实现 方法一实现代码 方法二实现代码 一、问题描述 原题链接   142. 环形链表 II - 力扣Le142. 环形链表 II - 力扣Le 二、解题思路 方法一数学公式推导法 预备知识 此方法的数学推导建立在判断链表是否带环的基础算法上推荐阅读前置文章 点击下方文字 【数据结构与算法 刷题系列】判断链表是否有环-CSDN博客 如图通过快慢指针法得到两个指针相遇位置时 假设 链表入环前的长度为L环的长度为C快慢指针相遇节点为meet环的入口与相遇节点meet的距离为N相遇时快指针已经在环内走了X圈X1快指针至少比慢指针都走一圈才能追上 推导过程 在meet相遇点 慢指针移动距离为LN 快指针移动距离为LX*CN   另外快指针移动距离是快指针的两倍 快指针也可以写成2LN 将两条公式结合起来 2LNLX*CN 化简 LNX*C LX*C-N LX-1*CC-N     最终得到的公式 LX-1*CC-N     该公式在图中说明的问题 链表入环前的长度L 与相遇点到环入口的距离再加X-1圈      ——X最少为1所以X-1至少为0 是相等的 结论 如果两个指针分别从链表起始位置和相遇点meet开始移动那么两个指针第一次相遇的节点就是环的入口 方法二转换为相交链表问题求解 此方法的数学推到建立在判断链表是否带环的基础算法上推荐阅读 【数据结构与算法 刷题系列】相交链表-CSDN博客 该方法是将带环链表问题转换为相交链表问题将问题降级处理 首先依然要 求得快慢指针相遇交点 然后将取得该节点下一个节点地址令其成为一个单独链表的首节点断开链表  之后这个问题就可以转换为相交链表问题来解决 三、代码实现 方法一实现代码 struct ListNode {int val;struct ListNode* next;}; typedef struct ListNode ListNode;//方法一数学推理法 struct ListNode* detectCycle1(struct ListNode* head) {ListNode* slow, * fast;slow fast head;ListNode* meet NULL;while (fast fast-next){slow slow-next;fast fast-next-next;if (slow fast)//先求得快慢指针相遇节点{meet slow;while (meet ! head)//两指针同时移动相遇即是入口{meet meet-next;head head-next;}return meet;}}return NULL; } 方法二实现代码 //求相交链表的交点的函数 struct ListNode* getIntersectionNode(struct ListNode* headA, struct ListNode* headB) {ListNode* pcurA headA;ListNode* pcurB headB;int countA 0;int countB 0;while (pcurA)//求出链表长度{pcurA pcurA-next;countA;}while (pcurB){pcurB pcurB-next;countB;}int tmp abs(countA - countB);//长度差值ListNode* slow, * fast;if (countA countB){slow headA;fast headB;}else{slow headB;fast headA;}while (tmp--)//长链表先走差值的步数{fast fast-next;}while (fast slow)//同步比较{if (fast slow)return fast;fast fast-next;slow slow-next;}return NULL; } struct ListNode* detectCycle(struct ListNode* head) {ListNode* slow, * fast;slow fast head;ListNode* meet NULL;while (fast fast-next){slow slow-next;fast fast-next-next;if (slow fast)//先求得快慢指针相遇节点{meet slow;ListNode* newhead meet-next;meet-next NULL;//将环断开变成两个相交的链表return getIntersectionNode(head, newhead);}}return NULL; }总结 两种方法可以自行选用 第一种方法属于推理复杂代码简单 第二种方法属于推理简单代码实现细节复杂 可根据实际情况选择合适的方法
http://www.dnsts.com.cn/news/185107.html

相关文章:

  • jsp怎么做网站的删除比较出名的wordpress网站
  • 二手车网站设计河北建设集团官方网站
  • 东莞如何建网站费用wordpress默认模版在哪
  • 网站建设陆金手指下拉壹玖北京市建设工程信息网有哪些
  • 网站如何防止攻击营销型网站 案例
  • 聊城seo优化hyein seo是什么牌子
  • 怎样创建个人视频号杭州网站建设方案优化
  • 机床网站建设微信小程序界面设计
  • 苏州网站制作开发公司网站后台管理系统制作
  • 为什么做彩票网站会被提示危险网站空间年费
  • 同城类网站建设多少钱网站建设总体上可划分为两个阶段
  • 济南网站建设安卓版做网站的计划
  • 重庆网站建设哪家专业网页设计软件免费下载
  • 网站制作咨询电话地坪网站建设
  • 江苏建安建设有限公司网站深圳小程序推广
  • 阜阳建设工程质量监督局网站广州比较好的网站建设公司
  • 福州市闽侯县建设局网站分析网站的优势和不足
  • shopify建站费用seo关键词优化软件排名
  • 现在手机网站用什么做的网站模板登录模块
  • 商业网站和企业网站的区别创意灵感的网站
  • 如何用WordPress建小说站网页设计素材包下载
  • 联通网站服务器交互设计案例100例
  • 银河麒麟软件下载网站wordpress模板电影
  • 网页设计与网站建设报告书海外网络连接器
  • 网站建设和网页设计wordpress百度云插件
  • 做ip资讯的网站虚拟主机免费试用
  • 大连网站建设谁家好晋中网站建设哪家强
  • 北京网站设计制作关键词优化新闻发布会发言稿范文
  • 双流兴城投资建设有限公司网站做建材的网站好名字
  • 青岛学网站建设的学校建筑网站首页