雜湊表法
小結給定乙個鍊錶,判斷鍊錶中是否有環。
為了表示給定鍊錶中的環,我們使用整數pos
來表示鍊錶尾連線到鍊錶中的位置(索引從 0 開始)。 如果pos
是-1
,則在該鍊錶中沒有環。
示例1:
輸入:head =[3
,2,0
,-4]
, pos =
1輸出:true
解釋:鍊錶中有乙個環,其尾部連線到第二個節點。
示例2:
輸入:head =[1
,2], pos =
0輸出:true
解釋:鍊錶中有乙個環,其尾部連線到第乙個節點。
示例3:
輸入:head =[1
], pos =-1
輸出:false
解釋:鍊錶中沒有環。
class
solution
:def
hascycle
(self, head: listnode)
->
bool:if
not(head and head.
next):
return
false
slow = head
fast = head.
next
while fast.
next
and fast.
next
.next
:if slow == fast:
return
true
slow = slow.
next
fast = fast.
next
.next
return
false
執行結果: 通過
執行用時: 52 ms, 在所有 python3 提交中擊敗了77.58%的使用者
記憶體消耗: 16.8 mb, 在所有 python3 提交中擊敗了19.14%的使用者
先按照自己的想法設計,用快慢指標的方法,當快指標和慢指標相遇時,說明有環,否則快指標會到達尾部從而跳出迴圈。之後學習了雜湊表法,通過建立字典,一邊遍歷鍊錶,一邊查詢並將節點加入字典中,由於雜湊表查詢時間複雜度低,所以會快很多。
leetcode 字母異位詞分組(python)
題目 給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。注意 需熟悉字典的相關使用方法 class so...
leetcode 200 島嶼數量 python
給你乙個由 1 陸地 和 0 水 組成的的二維網格,請你計算網格中島嶼的數量。島嶼總是被水包圍,並且每座島嶼只能由水平方向或豎直方向上相鄰的陸地連線形成。此外,你可以假設該網格的四條邊均被水包圍。示例 1 輸入 11110 11010 11000 00000 輸出 1示例 2 輸入 11000 11...
leetcode 字母異位詞分組 python3
給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。python中使用 字典 維護乙個分組表,鍵值 key...