設計乙個支援 push ,pop ,top 操作,並能在常數時間內檢索到最小元素的棧。
push(x) —— 將元素 x 推入棧中。
pop() —— 刪除棧頂的元素。
top() —— 獲取棧頂元素。
getmin() —— 檢索棧中的最小元素。
先用鍊錶實現乙個棧,在棧中的節點同時存入當前節點的數值和棧內元素的最小值
class
minstack
;public
: node *head =
new node;
//宣告頭節點
在c/c++語言中,不能夠直接使用-2147483648來代替最小負數,因為這不是乙個數字,而是乙個表示式。表示式的意思是對整數21473648取負,但是2147483648已經溢位了int的上限,所以定義為(-int_max -1)。
c中int型別是32位的,範圍是-2147483648到2147483647 。
(1)最輕微的上溢是int_max + 1 :結果是 int_min;
(2)最嚴重的上溢是int_max + int_max :結果是-2;
(3)最輕微的下溢是int_min - 1:結果是是int_max;
(4)最嚴重的下溢是int_min + int_min:結果是0 。
leetcode 棧 155 最小棧
設計乙個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。push x 將元素 x 推入棧中。pop 刪除棧頂的元素。top 獲取棧頂元素。getmin 檢索棧中的最小元素。示例 minstack minstack new minstack minstack.push 2 m...
Leetcode155實現最小堆
設計乙個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。push x 將元素 x 推入棧中。pop 刪除棧頂的元素。top 獲取棧頂元素。getmin 檢索棧中的最小元素。示例 minstack minstack new minstack minstack.push 2 m...
leetcode題 155 最小棧(簡單)
一 題目描述 155.最小棧 簡單 設計乙個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。push x 將元素 x 推入棧中。pop 刪除棧頂的元素。top 獲取棧頂元素。getmin 檢索棧中的最小元素。示例 minstack minstack new minstack...