惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
M
MIT News - Artificial intelligence
罗磊的独立博客
博客园 - 【当耐特】
A
About on SuperTechFans
Last Week in AI
Last Week in AI
雷峰网
雷峰网
IT之家
IT之家
aimingoo的专栏
aimingoo的专栏
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园_首页
博客园 - 叶小钗
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - Franky
J
Java Code Geeks
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
D
Docker
Engineering at Meta
Engineering at Meta
B
Blog RSS Feed
The Cloudflare Blog
大猫的无限游戏
大猫的无限游戏
阮一峰的网络日志
阮一峰的网络日志
S
SegmentFault 最新的问题
Recent Announcements
Recent Announcements

博客园 - 大牛

第二次答疑 11.25晚C语言答疑 数据结构:矩阵程序C++实现 C语言:编程练习参考程序 C语言:循环作业参考程序 数据结构: 二叉树的建立与遍历源代码( 用c++ STL 实现) 题目: 从键盘输入若干个正整数, 按从小到大的顺序输出. 输入负数表示输入结束. 用链表实现. 微软的面试题及答案-超变态但是很经典[转] 数据结构-稀疏矩阵和树的程序 部分面试题 算法题 辩论题 计算机语言兴趣小组水平测试参考答案 C语言活动小组的练习题 有关C语言的随机函数的解答 有关 alter tablespace begin backup 学生问的一道C语言题目 一篇有关教育的文章 答学生问,并不专业地
一道数据结构&算法题
大牛 · 2005-12-28 · via 博客园 - 大牛

现有一个链表,证明如果存在环,则:使用两个指针同时前进但步长不一样,则能够在有限步之后能够相逢。

题目的意思是我归纳出来的,我的解题思路是这样的:

能够相下逢的意思是:
在走了x步以后,x×S1 和 x×S2 对N同余,其中S1、S2为两个指针的步长,N为环的长度。

(x*s1) %N = (x*s2) %N
等价于:
x*s1 - a*N = x*s2 - b*N
=> x = ( (a - b)*N ) / ( s1 - s2 )

a, b 为指针所走的圈数。a 和b之间的关系于s1,s2有关。
a/b = s1 / s2
这样,上式可改写为:
x = ( a*(1 - s2/s1)*N ) / (s1 - s2)