【leetcode--最小棧】

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

實現 MinStack 類:

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

核心思想就是:

push 方法通過將一個元組 (x, min_value) 添加到棧中來同時保存新元素 x 和當前棧中的最小值 min_value

class MinStack:def __init__(self):self.stack = []def push(self, val: int) -> None:if not self.stack:self.stack.append((val,val))else:self.stack.append((val,min(val, self.stack[-1][1])))def pop(self) -> None:self.stack.pop()def top(self) -> int:if self.stack:return self.stack[-1][0]else:return Nonedef getMin(self) -> int:return self.stack[-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/diannao/39273.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/39273.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/39273.shtml

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

相關文章

TextInput是用于在用戶界面中輸入文本的控件,通常應用于表單、搜索框等需要用戶輸入文字的場景

TextInput是用于在用戶界面中輸入文本的控件,通常應用于表單、搜索框等需要用戶輸入文字的場景。以下是對TextInput的詳細解釋,涵蓋其各個方面的功能和屬性。 基本屬性 text 描述:TextInput中當前顯示的文本。用法:text: "示…

WebKey備受矚目的Web3.0新敘事,硬件與加密生態完美融合特性成為數字世界的新入口

在當今迅速發展的科技領域,Web3.0正在引領一場顛覆性的變革。而作為這一變革的先鋒,WebKey無疑是備受矚目的創新項目。它不僅代表了一種全新的技術趨勢,更是數字世界中硬件與加密生態完美融合的典范。 硬件與加密生態的完美融合 WebKey的核心…

Java基礎面試題(簡單版):

1.java的8個基本數據類型? 整型: byte(占用1個字節) short(占用2個字節) int(占用4個字節) long(占用8個字節) 浮點型: float(占用4個字節)、double(占用8個字節) 字符型: char 布爾型: boolean 2.ArrayList和LinkedList的區別? 可以說ArrayList和LinkedList除了是同屬于集合…

【QT】輸入類控件

目錄 Line Edit 核心屬性 核心信號 正則表達式 示例:使用正則表達式驗證輸入框內容 示例:切換輸入框密碼模式下的顯示狀態 Text Edit 核心屬性 核心信號 示例:獲取多行輸入框的內容同步顯示到label 示例:獲取文本的選…

三生隨記——眉筆詭事

在一個被遺忘的古鎮上,流傳著一個關于眉筆的詭異傳說。這個古鎮坐落在群山的環抱中,鮮少有人知曉它的存在。而在這片土地上,卻有著一件被視為詛咒之源的眉筆。 眉筆的來歷無人知曉,只知它在一夜之間出現在鎮上的古董店中。那支眉筆…

一文講懂npm link

前言 在本地開發npm模塊的時候,我們可以使用npm link命令,將npm 模塊鏈接到對應的運行項目中去,方便地對模塊進行調試和測試 用法 包鏈接是一個兩步過程: 1.為依賴項創建全局軟鏈npm link。一個符號鏈接,簡稱軟鏈&a…

0702_ARM5

練習:使用usart4 main.c #include "uart4.h"int main() {// 初始化 UART4hal_uart4_init();while (1) {// 發送一個字符串//hal_put_char( hal_get_char());hal_put_string(hal_get_string());}return 0; } usart4.c #include "uart4.h"//**…

c# 操作mysql的幫助類

MySqlHelper 的靜態類,其中包含了一些用于執行 MySQL 數據庫操作的方法。這些方法包括執行存儲過程、插入、更新、刪除操作以及執行數據庫事務查詢操作等。 該類中的方法主要有: ExecuteNonQuery 方法:用于執行存儲過程、插入、更新、刪除操…

如何降低布隆過濾器的誤判率

降低布隆過濾器的誤判率(也稱為假陽性率)是布隆過濾器應用中一個關鍵的問題。誤判率主要來源于哈希碰撞,即不同的元素可能被哈希到相同的位置。為了降低誤判率,可以從以下幾個方面進行優化: 1. 增加哈希函數的個數 原…

Asp.net Core 反射加載dll

定義一個類庫,定義接口 namespace Plugin {public interface IPlugin{void EllisTest();} }定義另外一個類庫,引用上面的類庫,實現接口 using Plugin;namespace UserCustom {public class Custom : IPlugin{public void EllisTest(){Conso…

二刷力扣——DP算法(子序列問題)

300. 最長遞增子序列 定義是以本元素結尾&#xff0c;所以公式初始化都好弄。但是太慢 class Solution {public int lengthOfLIS(int[] nums) {int nnums.length;int[] dp new int[n];//以自己結尾的最長遞增子序列dp[0]1;int maxzi1;for(int i1;i<n;i){dp[i]1;for(int j…

QT中QDomDocument讀寫XML文件

一、XML文件 <?xml version"1.0" encoding"UTF-8"?> <Begin><Type name"zhangsan"><sex>boy</sex><school>Chengdu</school><age>18</age><special>handsome</special>&l…

【YOLOv5進階】——引入注意力機制-以SE為例

聲明&#xff1a;筆記是做項目時根據B站博主視頻學習時自己編寫&#xff0c;請勿隨意轉載&#xff01; 一、站在巨人的肩膀上 SE模塊即Squeeze-and-Excitation 模塊&#xff0c;這是一種常用于卷積神經網絡中的注意力機制&#xff01;&#xff01; 借鑒代碼的代碼鏈接如下&a…

在C#中使用RabbitMQ做個簡單的發送郵件小項目 _

前言 好久沒有做項目了&#xff0c;這次做一個發送郵件的小項目。發郵件是一個比較耗時的操作&#xff0c;之前在我的個人博客里面回復評論和友鏈申請是會通過發送郵件來通知對方的&#xff0c;不過當時只是簡單的進行了異步操作。那么這次來使用RabbitMQ去統一發送郵件&#x…

vue中路由來回切換頁面直接卡死

今天發現一個很嚴重的問題&#xff0c;項目好不容易做好了&#xff0c;結果頁面多了&#xff0c;切換之后卡死。頁面所有的交互效果都失效了。 排查了許久的錯誤原因最后發現原來是路由名稱重復了。 如上圖當頁面跳轉到riskdetails詳細頁面之后&#xff0c;框架則被這個詳情頁…

隨機森林R語言預測工具

隨機森林&#xff08;Random Forest&#xff09;是一種基于決策樹的集成學習方法&#xff0c;它通過構建多個決策樹并集成它們的預測結果來提高預測的準確性。在R語言中&#xff0c;我們可以使用randomForest包來構建和訓練隨機森林模型。以下是對隨機森林的詳細介紹以及使用R語…

java高仿真數據生成器-需要的拿去

java高仿真數據生成器源碼-需要的拿去 nit-random-tools 介紹&#xff1a;高仿真數據生成器 逆天開源 java 證號碼, 姓名&#xff0c;職業, 日期&#xff0c;手機號 生成器 功能列表 編號功能描述class1號 生成器NitIdcardGenerator2姓名 生成器NitChineseNameGenerator3職…

node.lib下載失敗,手動下載并配置

在無網絡環境&#xff0c;或者網絡不好的環境&#xff0c;node.lib會下載失敗&#xff0c;此時可手動下載并進行配置。 我們以 node16.17.0 為例&#xff1a; 下載地址 分別下載node.lib和headers https://registry.npmmirror.com/-/binary/node/v16.17.0/win-x64/node.lib…

目標檢測算法的技術革新與應用案例

引言 目標檢測作為計算機視覺領域中的一項關鍵技術&#xff0c;近年來取得了顯著進展。從傳統的基于特征的方法到如今的深度學習算法&#xff0c;目標檢測技術在準確性、速度和魯棒性上均實現了大幅提升。本文將深入探討目標檢測算法的技術原理、發展歷程、最新進展以及實際應…

HarmonyOS--開發者證書考試地址

初級證書&#xff1a;華為開發者學堂 高級證書&#xff1a;華為開發者學堂 對應課程&#xff1a;華為開發者學堂