LeetCode題解(面試03.02):設計能夠在常數時間內檢索到最小元素的棧(Python)
題目:原題連結(簡單)
標籤:設計、棧
解法 | 時間複雜度 | 空間複雜度 | 執行用時 |
---|---|---|---|
Ans 1 (Python) | O ( N ) O(N) O(N) | O ( N ) O(N) O(N) | 68ms (94.18%) |
Ans 2 (Python) | |||
Ans 3 (Python) |
解法一:
class MinStack:
def __init__(self):
self.stack = []
def push(self, x: int) -> None:
if not self.stack:
self.stack.append(x)
self.stack.append(x)
else:
min_val = self.stack[-1]
self.stack.append(x)
self.stack.append(min(min_val, x))
def pop(self) -> None:
self.stack.pop()
return self.stack.pop()
def top(self) -> int:
return self.stack[-2]
def getMin(self) -> int:
return self.stack[-1]
相關文章
- Leetcode 演算法題解系列 - 最小棧LeetCode演算法
- leetcode.最小棧問題LeetCode
- python常見面試題講解(二)計算字元個數Python面試題字元
- CSS 技巧篇(六):display設定元素為行內元素時,元素之間存在間隙問題CSS
- 鄭州達內:設計師常的經典面試題面試題
- LeetCode-最小棧LeetCode
- 面試Python機器學習時,常見的十個面試題Python機器學習面試題
- 好程式設計師Python教程分享常見的Python面試題程式設計師Python面試題
- 設計模式常見面試題設計模式面試題
- 【LeetCode】155. 最小棧LeetCode
- 常見面試演算法題JS實現-設計一個有getMin功能的棧面試演算法JS
- JavaScript陣列檢索指定元素JavaScript陣列
- 好程式設計師Python教程分享Python常見面試問題程式設計師Python面試
- [M設計+雜湊表] lc380. 常數時間插入、刪除和獲取隨機元素(設計+雜湊表)隨機
- 每日leetcode——155. 最小棧LeetCode
- 在頁面上能夠自動變動的帶有星期的時間日期程式碼
- 【谷歌面試題】求陣列中兩個元素的最小距離谷歌面試題陣列
- 總是感覺時間不夠用?程式設計師如何管理時間?程式設計師
- Python培訓常識:Python面試中常被問到的幾種設計模式要知道Python面試設計模式
- 在Linux中,哪⼀個bash內建命令能夠進行數學運算?Linux
- LeetCode題解(Offer17):列印從1到最大的n位數(Python)LeetCodePython
- 【統計】能夠在session級別和system級別修改的oracle引數統計SessionOracle
- LeetCode#面試題 17.10. 主要元素LeetCode面試題
- JS實現檢查給定時間範圍是否在每天的某個時間段內JS
- Java程式設計師面試常見問題Java程式設計師面試
- 【轉】程式設計師求職面試中經常遇到的面試問題程式設計師求職面試
- Intersection observer檢測元素是否在視窗內Server
- 5年程式設計師面試,常見面試問題解析程式設計師面試
- 智慧數字經營的出現能夠解決哪些實際問題?
- HTML行內級元素之間的空格問題HTML
- LeetCode1450. 在既定時間做作業的學生人數LeetCode
- Python面試常見問題Python面試
- 程式設計師能夠得到的最好讚揚程式設計師
- Python爬蟲程式設計常見問題解決方法Python爬蟲程式設計
- 常見塊元素和內聯元素
- 聽說逆向思維能夠降低時間複雜度?時間複雜度
- LeetCode題解(1512):好數對的數目(Python)LeetCodePython
- Linux網路程式設計常見面試題Linux程式設計面試題