链表带环问题

总结:链表带环问题

追击问题:fast追上slow就带环

1为什么一定会相遇,有没有可能会错过?

2slow一次走1步,fast走3步,4步,5步可以吗?请证明。

假设slow进环的时候,fast跟slow的距离是N,fast追击slow距离变短。

假设slow一次走一步,fast一次走三步,假设fast和slow之间的距离是N。

相当于一次追两步,那么下一次两指针之间的距离就是N-2。

如果是奇数和偶数,会有两种不同的结果:

-1就是两个指针会错过,进入新一轮的追击,距离变成C-1(C是环的长度):

 若C-1是偶数,那么追得上,若C-1是奇数,那么又再一次追不上了,陷入死循环。

总结:

1如果N是偶数,那么下一轮就追上了

2如果N是奇数,第一轮错过

C-1为偶,追上

C-1为奇,陷入死循环,永远追不上

假设slow进环时,slow和fast之间的距离是N。假设fast已经在环里面转了x圈。

slow走的距离:L

fast走的距离:L+x*C+(C-N)

fast走的距离是x的三倍,3L=L+X*C+(C-N)。

2L=(X+1)*C-N

偶数=(X+1)*偶数-奇数

这个条件不可能同时存在

永远追不上的条件是:同时存在N是奇数且C是偶数,那么永远追不上。

所以不可能永远追不上

N是偶数,C也是偶数

N是奇数,C也是奇数

结论N偶数第一轮追上

N奇数,第一轮追不上,下一轮就追上了

142. 环形链表 II - 力扣(LeetCode)


struct ListNode *detectCycle(struct ListNode *head) {struct ListNode*slow=head,*fast=head;while(fast&&fast->next){slow=slow->next;fast=fast->next->next;if(slow==fast){struct ListNode*meet=slow;while(meet!=head){meet=meet->next;head=head->next;}return meet;}}return NULL;
}

相遇时slow走的路程:L+N

(慢指针有没有可能在环里走了好多圈呢,没有可能,如果走了好多圈,fast一定会超过slow

fast走的路程:L+x*C+N

2*(L+N)=L+x*C+N

L=x*C-N   L=(x-1)*C+C-N

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1421829.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

mySQL (基础面试)实物四属性 ACID属性,以及开启事务

mySQL具备四个基本属性 原子性atomicity 事务是一个完整的操作,事务的各个步骤是不可分的(原子的),要么执行要么不执行 一致性consistency 当事务完成时,数据处于一致状态 隔离性isolation 并发事物之间彼此隔离…

layui select 绑定onchange事件失效

layui select 绑定onchange事件失效 问题背景解决方案 问题背景 在日常工作中,可能会用到页面 freemaker 以及 layui 前端框架,这个时候直接在 select 上面绑定 onchange 事件往往是不生效的,错误的方式 这种方式给 select 绑定的 onchange…

深入理解C#中的IO操作:File类的详解

文章目录 一、File类的概述二、File类的常用方法2.1 File.Exists(string path)2.2 File.Create(string path)2.3 File.WriteAllText(string path, string contents)2.4 File.ReadAllText(string path)2.5 File.Copy(string sourceFilePath, string destFilePath, bool overwrit…

82.网络游戏逆向分析与漏洞攻防-移动系统分析-坐标修正数据包的处理与模拟

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果,代码看不懂是正常的,只要会抄就行,抄着抄着就能懂了 内容…

喜茶与 BE@RBRICK 联名,开启酷黑2.0全新潮流体验

5 月 13 日,喜茶官宣与知名潮玩 BERBRICK 联名,双方联合推出联名特调饮品「BERBRICK黑凤梨」、联名版 HEYTEA x BERBRICK 公仔套组,以及结合双方品牌元素全新设计的黑银视觉包材、周边、主题店氛围及线下活动等,带来全方位的酷黑潮…

C# WinForm —— 17 MaskedTextBox 介绍

1. 简介 本质是文本框,但它可以通过掩码来区分输入的正确与否,可以控制输入的格式、长度 主要应用场景是:需要格式化输入信息的情况 2. 常用属性 属性解释(Name)控件ID,在代码里引用的时候会用到,一般以 mtxt 开头AsciiOnly是否…

YOLOv9-20240507周更说明|更新MobileNetv4等多种轻量化主干

专栏地址:目前售价售价69.9,改进点70 专栏介绍:YOLOv9改进系列 | 包含深度学习最新创新,助力高效涨点!!! 本周已更新说明: ### ⭐⭐更新时间:2024/5/12⭐⭐ 1. YOLOv9…

COMSOL粗略估算计算时间

COMSOL粗略估算模型计算时间 针对反复修改调试的有限元模型,需要大致估算有限元模型的计算时间。经查阅,模型求解的自由度数和求解时间密切相关。 测试条件 测试模型为声-固耦合模型,电脑内存32G,CPU-i7-10700K,核显…

TCP协议建立连接的过程及其意义

目录 三次握手 四次挥手 三次握手的意义 在客户端与服务器传输数据之前,要在两台主机之间先建立连接,然后再传输业务数据。三次握手,就是建立连接的过程,是在传输业务之前,就要先进行。握手好了,才能进行…

vue使用element级联选择器实现选择国内地址(到区县)

本方法是使用第三方库 1.下载全省市区的数据 npm install element-china-area-data -S如果使用vscode运行报错,就使用管理员打开cmd来到你前端对应的文件夹位置再次执行该命令 2.下载完成后导入使用 import {provinceAndCityData,pcTextArr,regionData,pcaTextA…

华中科大:感谢大家,我的春招之旅结束了

今天在论坛上看到一个帖子,一位华中科大的同学,因为家中父亲突然病倒,发求助帖: 请问大家,春招走哪个方向能最快找到工作?还是说继续读研呢,但是家里急需钱…… 当时这个帖子直接热榜第一&…

周进院长受邀出席2024第四届屈光手术国际论坛获多项荣誉称号!

周进院长受邀出席2024第四届屈光手术国际论坛获“全国首批EVOICL(V5)新技术临床应用专家”等多项荣誉称号! 5月10-12日,由爱尔眼科医院集团主办、长沙爱尔眼科医院协办的2024第四届屈光手术国际论坛(IRSS 2024&#x…

AI大模型系列之七:Transformer架构讲解

目录 Transformer是什么? 输入模块结构: 编码器模块结构: 解码器模块: 输出模块结构: Transformer核心思想是什么? Transformer的代码架构 自注意力机制是什么? 多头注意力有什么用? 前…

ohmyzsh的安装过程中失败拒绝连接问题的解决

1.打开官网Oh My Zsh - a delightful & open source framework for Zsh 在官网能看到下面的界面 有这两种自动安装的方式 个人本次选择的是: wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O - 1.打开终端输入安装的指令 sh -c "$(wget…

etcd集群恢复、单节点恢复操作手册

一、集群备份 备份方式:Jenkins触发每小时的定时任务,通过调取ansible的playbook进行etcd集群的数据备份和上传,默认只备份集群中的非leader成员,避免leader成员压力过大。将备份数据上传到对应的公有云对象存储,分别…

软件测试总体报告(实际项目原件Word参考)

软件全套精华资料包清单部分文件列表: 工作安排任务书,可行性分析报告,立项申请审批表,产品需求规格说明书,需求调研计划,用户需求调查单,用户需求说明书,概要设计说明书&#xff0c…

bat xcopy 解析

echo off set source_folder"C:\path\to\source" set destination_folder"C:\path\to\destination" set exclude_file"C:\path\to\excluded_folders.txt"REM 创建目标文件夹(如果不存在) mkdir %destination_folder% 2>…

01-02-1

1、day10作业 使用的代码 #include<stdio.h> void change(int* i) {*i(*i) / 2; } int main() {int i 0;scanf("%d", &i);change(&i);printf("%d", i);return 0; } ​ ​ 2、day11作业 使用的代码 #include<stdio.h> #include<…

如何在windows server下安装mysql5.7数据库,并使用Navicat Premium 15可视化工具新建数据库并读取数据库信息。

如何在windows server下安装mysql5.7数据库&#xff1f; MySQL :: Download MySQL Community Server (Archived Versions)https://downloads.mysql.com/archives/community/点击↑&#xff0c;然后选择对应版本和平台↓下载 将下载后的安装包放入固定目录&#xff08;这里以D:…

Linux0.11 中全局描述符表(GDT)

在Linux内核中&#xff0c;全局描述符表&#xff08;Global Descriptor Table&#xff0c;简称GDT&#xff09;是一个关键的数据结构&#xff0c;主要用于管理处理器的内存段和相关的权限与属性。它属于x86架构中的保护模式特性&#xff0c;允许操作系统对内存访问进行更精细的…