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

上海企业微信网站制作/关键词优化话术

上海企业微信网站制作,关键词优化话术,做二手家电网站怎样,网站月流量是什么意思题目转载自:力扣 分析: 这一题题目要求使用O(1)的时间复杂度来解。 然后大概有两种解法来做,下面分别来介绍一下: 首先判断链表是否有环,如果有环的话,先将指针定位到环内&#…

题目转载自:力扣

分析: 

这一题题目要求使用O(1)的时间复杂度来解。

然后大概有两种解法来做,下面分别来介绍一下:

首先判断链表是否有环,如果有环的话,先将指针定位到环内(可以通过快慢指针来将两个指针在环内相遇,这样就能定位到环内的结点了)。

在拿到环内结点的情况下有以下两种方法来解题:

1.因为是一个环,所以我们可以分别指向环内的每个点,然后在确定了环内固定点之后这里用P1代表环内的固定点,声明一个指针指向链表头部这里用P2代表头结点,然后P2移动每次前移一步,P1不动,用一个整型变量来记录P2移动的步数,当P2和P1相遇时,步数记录停止,然后该步数就是P2头结点到环内节点的一个距离;下面要做的就很简单了,我们只需要遍历环内的结点,分别求一下头节点到环内节点的距离即可,最小距离就是这个入环点。

public class Solution {public static ListNode detectCycle(ListNode head) {if (head == null) {return null;}ListNode fastNode = head;ListNode slowNode = head;ListNode inCycleNode = null;while (slowNode != null) {fastNode = fastNode.next;slowNode = slowNode.next;if (slowNode == null) {break;}slowNode = slowNode.next;if (slowNode != null) {if (fastNode == slowNode) {inCycleNode = fastNode;break;}} else {break;}}if (inCycleNode == null) {return null;}ListNode res = null;int len = Integer.MAX_VALUE;ListNode node = inCycleNode;do {ListNode temp = head;int tempRes = 0;while (temp != node) {tempRes++;temp = temp.next;}if (tempRes < len) {res = temp;len = tempRes;}node = node.next;} while (node != inCycleNode);return res;}public static void main(String[] args) {ListNode first = new ListNode(3);ListNode second = new ListNode(2);ListNode third = new ListNode(0);ListNode fourth = new ListNode(-4);first.next = second;second.next = third;third.next = fourth;fourth.next = second;ListNode listNode = detectCycle(first);}
}

2.第二种解法偏向于数学了,这里我就不把具体的解法贴出来了,具体解法分析如下图(截图自力扣官方解答),但是我会分析一下我看的这个解答分析里的疑问点,如下:

 这里我要解释的只有一点:

为什么快指针和慢指针相遇的时候,慢指针走的距离不大于一圈(即小于等于一圈),这也跟上述分析的论点契合,因为上述分析就是默认两个指针在环内相遇的时候,慢指针在环内走的记录小于等于一圈,下面是解释:

因为快指针每次走两步,慢指针每次走一步,所以可以理解为慢指针不动,快指针每次走一步,假设快慢指针在环内同一点往后移动,这个时候快指针需要走的路程最长才可以追上慢指针(如果快慢指针不在同一个结点,那么快指针追上慢指针需要走的路程将会缩短),假设环有n个结点,快指针需要走n次,才能与慢指针相遇,此时慢指针恰好走了一圈,这个是最慢可以追上慢指针的情况,其他情况,快指针不用走n次就可以追上慢指针了,所以上图分析里的公式是对的。

public class Solution {public ListNode detectCycle(ListNode head) {if (head == null) {return null;}ListNode slowPointer = head;ListNode fastPointer = head;ListNode meetPos = null;while (fastPointer != null) {fastPointer = fastPointer.next;if (fastPointer == null) {break;}slowPointer = slowPointer.next;fastPointer = fastPointer.next;if (fastPointer == null) {break;}if (slowPointer == fastPointer) {meetPos = slowPointer;break;}}if (meetPos == null) {return null;}ListNode res = head;while (res != meetPos) {res = res.next;meetPos = meetPos.next;}return res;}public static void main(String[] args) {}
}

http://www.jmfq.cn/news/5064175.html

相关文章:

  • 网站建设的主要缺陷/网店代运营十大排名
  • 企业每年向工商网站做申报/seo常用工具包括
  • 漳州网站建设优化推广/查找网站
  • wordpress自定义文章/吉林网络seo
  • 做纸巾定制的网站/营销推广ppt
  • 久久建设集团有限公司/seo怎么做关键词排名
  • 医院网站建设 招标/电商网站开发需要多少钱
  • 建设网站去哪里找/域名检测工具
  • 网站怎么谈设计/杭州哪家seo公司好
  • 网站做cpa赚钱/搜索引擎推广培训
  • 超市如何建立网站/seo研究中心晴天
  • 九江 网站建设公司/seo外链
  • 公司网站高端/如何发布自己的网站
  • 湖南住房和城乡建设网门户网站/湖南疫情最新情况
  • 公司电子商务平台和企业网站建设和维护工作管理办法/怎样做百度推广网页
  • 南宁在哪里可以做网站/百度云盘官网
  • 邢台企业建站/百度发广告需要多少钱
  • 网站中的表单怎么做/网络营销软文范例500
  • 桂阳城乡建设局网站/百度的营销方式有哪些
  • 上海网站建设企业名录/黑马it培训班出来现状
  • ecshop网站根目录在哪/国际时事新闻
  • 关于做外汇现货的网站/网络推广专家
  • 做电商的批发网站/厦门seo顾问屈兴东
  • 骄阳房地产网站/佛山网站建设制作
  • 西安互联网网站建设/新网站怎么做推广
  • 苏州市吴江区住房和城乡建设局网站/百度推广方式有哪些
  • 蛋糕店网页设计图片/seo兼职
  • 昭通市住房和城乡建设局网站/seo运营
  • 浪潮云网站建设/谷歌优化排名哪家强
  • WordPress连接微信 微信机器人/搜索引擎优化是什么意思啊