在单向链表中找环

ops/2025/1/12 20:56:38/

在单向链表中找环也是有多种办法,不过快慢双指针方法是其中最为简洁的方法之一,接下来介绍这种方法。

首先两个指针都指向链表的头部,令一个指针一次走一步,另一个指针一次走两步,如果它们相遇了,证明有环,否则无环,时间复杂度 

如果有环的话,怎么找到环的起点呢?

我们列出式子来观察一下,设相遇时,慢指针一共走了  步,在环上走了  步(快慢指针在环上相遇时,慢指针一定没走完一圈)。快指针走了  步,设环长为 ,则有

第一次相遇时  取最小正整数 1。也就是说 。那么利用这个等式,可以在两个指针相遇后,将其中一个指针移到表头,让两者都一步一步走,再度相遇的位置即为环的起点。


http://www.ppmy.cn/ops/108825.html

相关文章

Yarn原理图

Yarn是hadoop的三大组件之一,是资源调度器,负责资源调度和资源的分配。具体原理如下图: 客户端向resource Manager发送资源请求。 RM接收到请求之后,会在某一台机器上创建Application Master ,并建立心跳机制进行反向注…

单词排序C++实现

代码如下&#xff1a; #include<iostream> #include<string> #include<fstream> #include<map> #include<iomanip> #include<algorithm> #include<vector>int read_file(std::map<std::string,int> &map_words) {std::st…

系统架构设计师|关于系统架构-002

&#x1f4eb; 作者简介&#xff1a;「六月暴雪飞梨花」&#xff0c;专注于研究Java&#xff0c;就职于科技型公司后端工程师 &#x1f3c6; 近期荣誉&#xff1a;华为云云享专家、阿里云专家博主、腾讯云优秀创作者、腾讯云TDP-KOL、ACDU成员、墨天轮技术专家博主 &#x1f52…

基于SpringBoot+Vue+MySQL的足球俱乐部管理系统

系统展示 用户前台界面 管理员后台界面 系统背景 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统足球俱乐部管理…

pytorch torch.norm函数介绍

torch.norm 函数用于计算张量的范数&#xff08;norm&#xff09;&#xff0c;可以理解为张量的“长度”或“大小”。根据范数的不同类型&#xff0c;它可以衡量不同的张量性质。该函数可以计算 向量 和 矩阵 的多种范数&#xff0c;如 L1范数、L2范数、无穷范数 等。 1. 函数…

scRNA-data中的R值

愿武艺晴小朋友一定得每天都开心 当我们测序拿得到各个样本中基因的表达值&#xff0c;就可以用基因表达值来表征样本间的相关性 代码如下&#xff1a; #样本间相似性&#xff1a;R值 相关性 捕获到的基因在两个样本间表达趋势一致性 exp_RNA <- AverageExpression(fasti…

scss 颜色变浅

在SCSS&#xff08;Sass&#xff09;中&#xff0c;你可以使用内置的颜色函数来调整颜色的亮度&#xff0c;使其变浅。主要使用的函数是lighten()&#xff0c;它可以让颜色变得更亮&#xff08;更接近白色&#xff09;。 SCSS 颜色调整函数 lighten($color, $amount) 函数 l…

AI写作提示链的使用方法,原来越复杂的任务越简单

看到个很不错的提示词使用技巧&#xff0c;叫 Prompt Chaining。这能大幅提升内容输出质量。它是一种把多个提示词链接起来的结构&#xff0c;英文术语就是 Prompt Chaining。 有篇国人团队写的学术论文专门解释了这个概念 论文地址&#xff1a;https://arxiv.org/html/2406.00…