下面兩個鏈結是我的leetcode棧和佇列的分類。
棧: (共40題)
佇列:共8題)
堆:共31題)
(1)實現乙個特殊的棧,在實現棧的基本功能的基礎上,再實現返回棧中最小元素的操作。
(2)怎麼用陣列實現棧和佇列。
棧用乙個 index, push 就是 ++index, pop就是 --index
佇列用三個變數,startidx, endidx, 和 size (有可能 endidx < startidx 的這種情況)
(3)如何用兩個棧實現乙個佇列(lc 232),如何用兩個佇列實現乙個棧(lc 225)
(4)如何僅用遞迴函式和棧操作逆序乙個棧
(5)用棧來求解漢諾塔問題
它能解決問題就是在 o(n) 的時間複雜度內,找到離乙個數數最近的左右兩個比它大或者小(或者說更強的數)(找比它大的數的時候,強就是比它大,同理小也一樣)。
不要求是陣列,資料流也一樣的。
比如說給了乙個陣列,找到乙個數離它最近的最大的左右兩個數。eg, [1, 3, 2, 0, 9, 3, 4, 6] 比如找 離 4 最近的比它大的左右兩個數字就是 [9, 6]
棧和佇列演算法
1 實現乙個棧,要求實現push 出棧 pop 入棧 min 返回最小值 的時間 複雜度為o 1 方法1 使用乙個棧實現,交叉棧 pragma once include define max value 100 typedef struct minstackminstack 實現乙個棧,要求實現pu...
演算法 佇列和棧
雙端佇列的首部和尾部都可以亞壓入元素 public class statck stacktest array public static void stacktest int array else else data.push array i system.out.println 每一步棧的最小值 ...
演算法 棧和佇列
佇列public inte ce mystackextends iterable public class arraystackimplements mystack override public item pop throws exception item item a n check 避免物件游...