【LeetCode】最小棧

目錄

  • 一、題目
  • 二、解法
  • 完整代碼


一、題目

設計一個支持 push ,pop ,top 操作,并能在常數時間內檢索到最小元素的棧。

實現 MinStack 類:

MinStack() 初始化堆棧對象。
void push(int val) 將元素val推入堆棧。
void pop() 刪除堆棧頂部的元素。
int top() 獲取堆棧頂部的元素。
int getMin() 獲取堆棧中的最小元素。

示例 1:

輸入:
[“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top”,“getMin”]
[[],[-2],[0],[-3],[],[],[],[]]

輸出:
[null,null,null,null,-3,null,0,-2]

解釋:
MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin(); --> 返回 -3.
minStack.pop();
minStack.top(); --> 返回 0.
minStack.getMin(); --> 返回 -2.

提示:

-231 <= val <= 231 - 1
pop、top 和 getMin 操作總是在 非空棧 上調用
push, pop, top, and getMin最多被調用 3 * 104 次


二、解法

也是用棧,記錄數字的同時,記錄目前所知道的最小值


完整代碼

class MinStack:def __init__(self):self.stk = []def push(self, val: int) -> None:if not self.stk or self.stk[-1][1] > val:self.stk.append([val, val])else:self.stk.append([val, self.stk[-1][1]])def pop(self) -> None:self.stk.pop()def top(self) -> int:return self.stk[-1][0]def getMin(self) -> int:return self.stk[-1][1]# Your MinStack object will be instantiated and called as such:
# obj = MinStack()
# obj.push(val)
# obj.pop()
# param_3 = obj.top()
# param_4 = obj.getMin()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/45177.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/45177.shtml
英文地址,請注明出處:http://en.pswp.cn/web/45177.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ACE之ACE_Handle_Set

簡介 ACE_Handle_Set是對select io復用中fd_set的封裝 結構 #mermaid-svg-dwnlrGqy52ds6ctC {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-dwnlrGqy52ds6ctC .error-icon{fill:#552222;}#mermaid-svg-dwnlrGqy52…

微信小程序開發基礎知識6----使用npm包

一、小程序對npm的支持與限制 目前&#xff0c;小程序中已經支持使用 npm 安裝第三方包&#xff0c;從而來提高小程序的開發效率。但是&#xff0c;在小程序中使用npm 包有如下3個限制: ① 不支持依賴于 Node.js 內置庫的包 ② 不支持依賴于瀏覽器內置對象的包 ③ 不支持依賴于…

Java算法-力扣leetcode-209. 長度最小的子數組

209. 長度最小的子數組 給定一個含有 n ****個正整數的數組和一個正整數 target 。 找出該數組中滿足其總和大于等于 ****target ****的長度最小的 **** 子數組 [numsl, numsl1, ..., numsr-1, numsr] &#xff0c;并返回其長度 。 如果不存在符合條件的子數組&#xff0c;…

pico+unity預設配置

picosdk中有很多預設的配置、使用預設配置的方法有 1、創建 XR Origin、展開 XR Origin > Camera Offset&#xff0c;選中 LeftHand Controller。點擊 XR Controller (Action-Based) 面板右上角的 預設 按鈕 2、打開Assets\Samples\XR Interaction Toolkit\2.5.2\Starter A…

Linux--YUM倉庫部署及NFS共享存儲

目錄 一、YUM倉庫服務 1.1 YUM介紹 1.2 yum 常用的命令 1.3 YUM 源的提供方式 1.3.1 配置本地 yum 源倉庫 1.3.2 配置 ftp 源 1.3.3 配置http服務源 二、NFS 共享存儲 2.1 NFS基本概述 2.2 為什么使用 NFS 共享存儲 2.3 NFS 應用場景 2.4 NFS 實現原理 2.5 NFS文件…

配置提交節點

方法一&#xff1a;配置lsf.cluster.<clustername> 到$LSF_TOP/conf目錄&#xff0c;編輯lsf.cluster.<clustername>文件。將下面配置中的server列設置成0&#xff0c;此節點就會作為Login節點。此方法通過bhosts不可以查看到這個節點。 # cd $LSF_ENVDIR# vim l…

gitlab 搭建使用

1. 硬件要求 ##CPU 4 核心500用戶 8 核心1000用戶 ##內存 4 G內存500用戶 8 G內存1000用戶 2. 下載 鏈接 3. 安裝依賴 yum -y install curl openssh-server postfix wget 4. 安裝gitlab組件 yum -y localinstall gitlab-ce-15.9.3-ce.0.el7.x86_64.rpm 5. 修改配置文…

Qt Quick qml自定義控件:qml實現電池控件

qml入門進階專欄地址:https://blog.csdn.net/yao_hou/category_9951228.html?spm=1001.2014.3001.5482 本篇博客介紹如何使用qml來實現電池控件,效果圖如下: 下面給出實現代碼 Battery.qml /*電池組件*/import QtQuick 2.15 import QtQuick.Controls 2.15Rectangle {id: b…

實驗05 單元測試

知識點 單元測試的定義 單元測試&#xff08;Unit Testing&#xff09;是一種軟件開發的驗證過程&#xff0c;旨在隔離并檢測軟件組件&#xff08;通常是函數、方法或類&#xff09;的單個單元的功能是否按照預期執行。每個測試用例驗證特定的條件或功能&#xff0c;確保代碼的…

Apache Kylin: 大數據時代的分析引擎

在大數據時代&#xff0c;企業面臨著數據量激增的挑戰&#xff0c;傳統的數據分析方法已經無法滿足快速、高效的處理需求。Apache Kylin作為開源的分布式分析引擎&#xff0c;為超大規模數據集提供了快速的洞察能力。本文將介紹Kylin的基本概念、架構、特性以及如何部署和使用K…

音視頻開發—使用FFmpeg將YUV文件編碼成H264裸流文件 C語言實現

文章目錄 1.準備工作2.壓縮編碼工作流程3.詳細步驟1. 初始化日志和參數檢查2. 輸入/輸出文件的打開3. 查找和初始化編碼器4. 打開編碼器5. 幀內存的分配和初始化6. 設置轉換上下文&#xff08;SWS&#xff09;7. 讀取和轉換數據8. 編碼過程9. 資源清理 4.完整示例代碼 1.準備工…

熊海CMS漏洞練習平臺的一次xss、sql注入、越權黑盒思路分析

簡介 熊海CMS是由熊海開發的一款功能豐富的網站綜合管理系統&#xff0c;廣泛應用于個人博客、個人網站以及企業網站&#xff0c;本文章用于黑盒測試&#xff0c;如果需要「源碼審計」后臺回復【「CMS」】獲取即可&#xff0c;精心準備了40多個cms源碼漏洞平臺&#xff0c;供寶…

代碼隨想錄第七天(454、383、15、18)

題目一&#xff1a;四數相加II 鏈接&#xff1a; 代碼隨想錄 思路&#xff1a;首先用雙循環遍歷構成ab的值和出現的次數&#xff0c;用字典接收&#xff0c;由于abcd0&#xff0c;因為在對c和d進行雙循環后&#xff0c;在字典中找到0-c-d&#xff0c;得出它的值也就是出現次數…

在瀏覽器控制臺中輸出js對象,為什么顏色不同,有深有淺

打開console&#xff0c;輸入自定義的javascript對象的時候&#xff0c;打開看發現對象的屬性是深紫色&#xff0c;后面有一些對象是淺紫色的&#xff0c;比如Array對象和一堆SVG,HTML,CSS開頭的對象&#xff0c;常用的prototype和__proto__也是淺紫色的。 請問這里深紫和淺紫…

【Unity】制作簡易計時器

一、創建計時器相關的變量 我們需要創建三個變量&#xff0c;分別是&#xff1a;計時時長、計時剩余時長、是否處于計時狀態。 public float duration;//計時時長 public float remain; //計時剩余時長 public bool isCount; //是否處于計時狀態 二、初始化變量 我們可以直…

什么是Maven以及如何配置Maven

T04BF &#x1f44b;專欄: 算法|JAVA|MySQL|C語言 &#x1faf5; 今天你敲代碼了嗎 文章目錄 1.Maven1.1什么是Maven1.2Maven的好處1.3使用idea創建一個Maven項目1.4Maven的核心功能1.4.1項目構建 1.5Maven倉庫1.5.2 中央倉庫1.5.3 私有服務器(私服) 1.6Maven設置國內源 1.Mave…

[pytorch]常用函數(自用)

一、公共部分 1、torch.linespace 返回一維張量&#xff0c;在start和end之間&#xff08;包括start也包括end&#xff09;的均勻間隔的steps個點&#xff0c;長度為steps。 print(torch.linspace(1,10,3)) #輸出tensor([ 1.0000, 5.5000, 10.0000]) print(torch.linspace…

文本分類--NLP-AI(八)

文本分類任務 任務簡介1.字符數值化方式1方式2 2.池化&#xff08;pooling&#xff09;3.全連接層4.歸一化函數&#xff08;Sigmoid&#xff09;5.總結 從任務抽象新的技術點Embedding層池化層 任務簡介 任務介紹&#xff1a; 字符串分類&#xff0c;根據一句話的含媽量&#…

伊利25屆校招24年社招網申入職北森測評題庫全攻略!一文通!

伊利校招社招網申測評全攻略&#x1f680; 親愛的求職小伙伴們&#xff0c;今天我要分享一份伊利校招社招網申測評的全攻略&#xff0c;希望能助你們一臂之力&#xff01; 測評概覽 伊利的網申測評分為六個部分&#xff0c;總共約60分鐘的答題時間&#xff0c;涵蓋了言語邏輯、…

避免 WebSocket 連接被拒絕

一、檢查服務器配置和權限 (一)確認服務器訪問權限 確保您的客戶端有訪問服務器的合法權限。如果服務器設置了訪問控制列表(ACL)或僅允許特定的源(Origin)進行連接,您需要確保客戶端的請求來源在允許的范圍內。例如,如果服務器只允許來自特定域名的連接,而您的客戶端從…