LeetCode之Min Stack 實現最小棧

2021-09-06 19:57:22 字數 921 閱讀 8133

leetcode相關的網上資源比較多,看到題目一定要自己做一遍,然後去學習參考其他的解法。

題目描述:

design a stack that supports push, pop, top, and retrieving the minimum element in constant time.

push(x) -- push element x onto stack.

pop() -- removes the element on top of the stack.

top() -- get the top element.

getmin() -- retrieve the minimum element in the stack.

設計乙個最小棧,支援入棧,出棧,獲取棧頂元素,獲取棧最小值,要求時間複雜度0(1).

stack(棧)是first in-last out的資料結構。如果不考慮時間複雜度,實現題目的要求都比較簡單,現在限定了不超過常量時間o(1),

就不能用簡單的排序過濾實現了。

另外,棧頂(top)指的是允許運算元據的一端,要與堆疊中高低位址不同的棧頂和棧底區別開來,以前我經常搞混。

public

class

minstack

public

void push(int

x) elementsstack.push(x);

}public

void

pop()

elementsstack.pop();

}public

inttop()

public

intgetmin()

}

提交,可以ac.

LeetCode演算法題 最小棧MinStack

設計乙個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。push x 將元素 x 推入棧中。pop 刪除棧頂的元素。top 獲取棧頂元素。getmin 檢索棧中的最小元素。示例 minstack minstack new minstack minstack.push 2 m...

LeetCode之打家劫舍

你是乙個專業的小偷,計畫偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。給定乙個代表每個房屋存放金額的非負整數陣列,計算你在不觸動警報裝置的情況下,能夠偷竊到的最高金額。示例 1 輸入 1...

leetcode筆記之陣列

陣列要注意越界問題 一般轉化為有序,但是如果是返回位置而不是數的集合,就要用到hashtable 1.兩數之和 陣列無序,返回位置 1.申請乙個hash table unordered maphash 2.遍歷陣列,令num target nums i 2.1.如果num已經在hash map中了,...