摘要:
大家都遇到过这个问题,就是如何判断一个单链表是否有环?当然,判断方法很多,但是目前网上最出名的那个方法大概是这样:设甲、乙两个指针指向同一起点,之后甲乙交替着走,甲每次走两步,乙每次走一步,遇到下面的情况则说明链表有环:甲某次走完两步后遇到了乙或者乙某次走完一步后遇到了甲。那么大家想没想过,为什么甲每次走两步,乙每次走一步这样可以?如果甲每次走4步乙每次走2步可不可以?各种步长对时间复杂度有什么影响?解释这个问题需要一些点初等数论上的东西,基本上就是欧几里得和丢番图方程的知识。插曲:丢番图方程有解的条件和解的形式假设丢番图方程为ax+by=c,d=gcd(a,b),那么ax+by=c有解的充分 阅读全文
posted @ 2012-10-23 10:42
haolujun
阅读(1406)
评论(2)
推荐(0)

浙公网安备 33010602011771号