LeetCode題解 T155(最小棧)

2021-10-07 02:08:38 字數 1130 閱讀 5622

設計乙個支援 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...