多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > 列表 環 判定 初始位置

列表 環 判定 初始位置

來源:程序員人生   發布時間:2015-07-14 13:37:42 閱讀次數:3431次

判定的方法比較簡單 有兩種方法  

第1種是使用哈希表來存貯每個節點 這樣的話 當hashset[ ] 中出現兩個相同的節點時就能夠判斷出來這是1樣的了  然后他所在的那個位置就是環第1次出現的位置上


第2種方法是用兩個快慢指針來做  

設定兩個指針分別為p1  p2   ,  p1的移動速度為每次移動1個距離   ,而p2的移動速度為每次移動兩個距離  ,這樣 ,直到快指針到達鏈表的結尾位置 

如果如果兩個指針相遇的話  ,那就說明這個鏈表中存在環   ,沒有相遇的話就沒有存在環


可以想象  ,直到兩個指針相遇,慢指針在環內的移動距離是不會超過環的長度 ,那極限來講 如果鏈表是首尾相連的  那末 慢指針的移動距離正好為連表的長度  ,如果是1個小環的話,  那末 快指針也能夠在慢指針沒有走滿半個圓環的時間內追上慢指針。

下面來討論如何肯定初始位置的問題  設 連表出發點到環的初始位置的距離為a   p1和p2交點到環初始的位置為c (即p1在環內的移動距離為c) 環的長度為r  所以 對p1來講  他所走過的路成為X = a + c   對p2來講 他所走過的路程為       2X = a + c + k*r  (k的之不肯定 為自然數) 所以  x = k*r        如果讓慢指針再走X步的話 他照舊會回到p1 與 p2相交的那個點  如果 讓p2從連表的出發點開始走的話  每次移動兩個距離  移動X次 他也會走到那個交點處  這樣  當p2走完a個距離以后  就會與p1重合  共同在環里繞圈 知道走到交點   所以   這樣就可以求出 環的初始位置了。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久国产精品免费一区二区三区 | 欧美日韩亚洲一区二区 | 好吊妞在线成人免费 | 最近最新中文字幕免费1 | 久久国产精品视频 | 国产成人精品久久 | 国产一区二区久久 | 114毛片免费观看网站 | 九九精品视频在线播放8 | 伊人久久综合网亚洲 | 中文字幕精品一区二区精品 | 日本aaaa级毛片在线看 | 成人欧美在线 | 精品无码久久久久久国产 | 久久精品免费看 | 亚洲欧美日韩精品久久久 | 国产精品免费久久久久影院小说 | 一级做a爱过程免费视频超级 | 久久精品国产99久久6动漫欧 | 波多野结衣亚洲一区二区三区 | 中文字幕欧美亚洲 | 国产亚洲高清在线精品不卡 | 国产亚洲福利精品一区 | 视频免费观看在线播放高清 | 亚洲欧美综合一区二区三区四区 | 免费看黄色网址 | 伊人色婷婷 | 亚洲视频高清 | 1314成人网 | 女人一级毛片免费观看 | 成人影院一区二区三区 | 一级毛片一级毛片一级毛片一级毛片 | 国产麻豆自拍 | 亚洲护士| 欧美性猛交xxxx乱大交高清 | v片在线观看 | 日本不卡一区二区三区四区 | 国产精品v片在线观看不卡 国产精品v在线播放观看 | 一区二区三区欧美视频 | 国产一区二区精品 | 国产成人亚洲综合91精品555 |