leetcode 225. 用佇列實現棧
leetcode 155. 最小棧
尾語相關刷題筆記部落格
競賽常用模板整理(acm/icpc/ccsp)
leetcode演算法刷題筆記1-鍊錶
leetcode演算法刷題筆記2-棧、隊、堆
leetcode演算法刷題筆記3-遞迴與回溯
leetcode演算法刷題筆記4-貪心
leetcode演算法刷題筆記5-二叉樹
leetcode演算法刷題筆記6-圖
leetcode演算法刷題筆記7-動態規劃
leetcode演算法刷題筆記8-二分查詢
函式功能
s.empty()
堆疊為空則返回真
s.size()
返回棧中元素數目
s.push()
在棧頂增加元素
s.top()
返回棧頂元素
s.pop()
移除棧頂元素(不會返回棧頂元素的值)
函式功能
q.empty()
判斷佇列q是否為空,當佇列q空時,返回true;否則為false(值為0(false)/1(true))。
q.size()
訪問佇列q中的元素個數。不可寫成sizeof(q)或size(q)
q.push()
會將乙個元素a置入佇列q中
q.front()
返回佇列q內的第乙個元素(也就是第乙個被置入的元素)。(不可寫成front(q))
q.back()
會返回佇列q中最後乙個元素(也就是最後被插入的元素)。(不可寫成back(q))
q.pop()
會從佇列q中移除第乙個元素。(不可寫成pop(q))
函式功能
時間make_heap
根據指定的迭代器區間以及乙個可選的比較函式,來建立乙個heap.
o(n)
push_heap
把指定區間的最後乙個元素插入到heap中.
o(logn)
pop_heap
彈出heap頂元素, 將其放置於區間末尾.
o(logn)
sort_heap
堆排序演算法,通常通過反覆呼叫pop_heap來實現.
n*o(logn)
is_heap
判斷給定區間是否是乙個heap.
o(n)
is_heap_until:
找出區間中第乙個不滿足heap條件的位置.
o(n)
使用佇列實現棧的下列操作:
push(x) -- 元素 x 入棧
pop() -- 移除棧頂元素
top() -- 獲取棧頂元素
empty() -- 返回棧是否為空
你只能使用佇列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 這些操作是合法的。
你所使用的語言也許不支援佇列。 你可以使用 list 或者 deque(雙端佇列)來模擬乙個佇列 , 只要是標準的佇列操作即可。
你可以假設所有操作都是有效的(例如, 對乙個空的棧不會呼叫 pop 或者 top 操作)。
#include
#include
using
namespace std;
class
mystack
//臨時佇列,與新元素的次序交換
void
push
(int x)
while
(!temp_queue.
empty()
)}intpop()
inttop()
bool
empty()
private
: queue<
int> _data;
//_data為佇列元素,也是我們設定的棧內元素 };
intmain()
設計乙個支援 push ,pop ,top 操作,並能在常數時間內檢索到最小元素的棧。
push(x) —— 將元素 x 推入棧中。
pop() —— 刪除棧頂的元素。
top() —— 獲取棧頂元素。
getmin() —— 檢索棧中的最小元素。
示例:輸入: [「minstack」,「push」,「push」,「push」,「getmin」,「pop」,「top」,「getmin」]
[,[-2],[0],[-3],,,,]
輸出: [null,null,null,null,-3,null,0,-2]
#include
#include
using
namespace std;
class
minstack
//臨時佇列,與新元素的次序交換
void
push
(int x)
else
_min.
push
(x);
//壓入x到最小棧 }}
void
pop(
)int
top(
)int
getmin()
private
: stack<
int> _data;
//資料棧
stack<
int> _min;
//最小值棧 };
intmain()
誠邀各校各地有志之士加入我們大學生it學習**流:871352155(請各位廣告大佬高抬貴手,常討論學習無關的朋友請出門右拐∑(っ°д°;)っ) leetcode刷題筆記 2
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...
leetcode熱題100刷題筆記 2
62.不同路徑 64.最小路徑和 70.爬樓梯 這道題很容易看出來可以用dfs解決,但是其中有乙個容易迷惑的點,就是所謂的 最長路徑 並不一定經過根節點!因此,我們需要在dfs的過程中,對每乙個節點,計算其左子樹的高度l以及右子樹的高度r,那麼以當前節點為起點的路徑,經過的節點的最大值就是l r 1...
演算法 LeetCode刷題
given 1,3 2,6 8,10 15,18 return 1,6 8,10 15,18 關鍵就是a 1 b 0 也就是array i 1 1 array i 0 const merge array return array console.log merge 1,3 8,10 2,6 15,1...