演算法練習之環形鍊錶

2022-09-17 11:03:26 字數 1149 閱讀 7365

1.環形鍊錶

給定乙個鍊錶,判斷鍊錶中是否有環。

為了表示給定鍊錶中的環,我們使用整數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

解釋:鍊錶中沒有環。

使用快慢指標,若指標相遇則判斷有環

j**a

/**

* definition for singly-linked list.

* class listnode

* } */

public

class

solution

return

true

; }

}

2.最小棧

設計乙個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。

push(x) -- 將元素 x 推入棧中。

pop() -- 刪除棧頂的元素。

top() -- 獲取棧頂元素。

getmin() -- 檢索棧中的最小元素。

每次入棧2個元素,乙個是入棧的元素本身,乙個是當前棧元素的最小值

j**a

class

minstack

public

void push(int

x) stack.push(x);

}public

void

pop()

}public

inttop()

public

intgetmin()

}

鍊錶之環形鍊錶

leetcode 141 easy 定義兩個指標slow和fast,只要slow指標追上每次走兩步的fast指標的話就有環,否則就沒!package linkedlist public class main0141環形鍊錶 class solution141 slow slow.next fast ...

鍊錶之環形鍊錶

上題目 leetcode 141 簡單 總體思路 雙指標,即通過使用一快一慢不同速度的兩個指標來遍歷鍊錶,如果有環,快的總會與慢的相遇。上 1 class solution 2def has cycle self,head 3 4 type head listnode 5 rtype bool 6 ...

演算法 環形鍊錶

給定乙個鍊錶,判斷鍊錶中是否有環。為了表示給定鍊錶中的環,我們使用整數 pos 來表示鍊錶尾連線到鍊錶中的位置 索引從 0 開始 如果 pos 是 1,則在該鍊錶中沒有環。示例 1 輸入 head 3,2,0,4 pos 1 輸出 true 解釋 鍊錶中有乙個環,其尾部連線到第二個節點。示例 2 輸...