劍指Offer試題總結(二)

2021-06-19 13:01:06 字數 712 閱讀 9006

包含min函式的棧:定義棧的資料結構,請在該型別中實現乙個能夠得到棧的最小元素的min函式。在該棧中,呼叫min,push和pop的時間複雜度都是o(1)?

因為棧的push和pop的操作時間複雜度都是o(1),所以現在考慮怎麼讓min的複雜度也是o(1)。如果在該棧中維護乙個最小值的元素,則第一次min操作的時候可以正確取出最小值,但接下來的min操作則無法取得最小值。所以可以考慮設定乙個輔助棧,首先把第乙個元素壓入輔助棧中,下面,對每乙個元素,如果該元素小於輔助棧的棧頂元素,則將該元素壓入輔助棧,否則將輔助棧的棧頂元素複製並壓入。

棧的壓入、彈出序列:輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出序列?

思路比較清晰,建立乙個輔助棧,試圖按照第二個序列出棧,如果棧為空之前,不能彈出任何元素,則第二個序列不是該棧的彈出序列。

從上往下列印二叉樹:從上到下列印出二叉樹的每個節點,同一層的結點按照從左到右順序列印?

畫個圖嘗試著去列印一些結點,可以想到用佇列儲存待列印的結點。從根節點出發,將佇列的子節點順序加入佇列中,下面依次列印佇列的首元素,並且每次將列印結點的子結點加入佇列中。

二叉搜尋樹的後序遍歷序列:輸入乙個整數陣列,判斷該陣列是不是某個二叉搜尋樹的後序遍歷的結果?

對於二叉搜尋樹的後序遍歷來說,根節點為最後乙個結點,且左子樹均小於根節點,右子樹均大於根節點,所以很顯然,對每一輪的子樹進行判斷時,只要判斷左子樹和右子樹和子樹根節點的大小關係是否合法即可。

劍指offer總結(一)

替換空格class solution s 源字串 defreplacespace self,s write code here result for char in s if char result.extend 20 else result.extend char return join resu...

劍指offer總結 陣列

劍指offer調整整數陣列順序 題目描述 輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。public class solution for int j top 1 j botto...

劍指offer筆試題26 30

題目描述 輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 正確的思路 首先對每個結點進行複製,並插入到原有結點的後面。第二步再逐個將新結點...