(棧)Leetcode155最小棧+739每日溫度

739. 每日溫度 - 力扣(LeetCode)

while要把stack的判斷放在前面,否則stack[-1]可能報錯

class Solution(object):def dailyTemperatures(self, temperatures):""":type temperatures: List[int]:rtype: List[int]"""#單調棧里存元素的話還要返回去得下標#直接存下標就沒有這個問題#單調棧存放遍歷過但沒結果的數ans=[0]*len(temperatures)stack=[]for i in range(len(temperatures)):if not stack:stack.append(i)elif temperatures[i]>temperatures[stack[-1]]:#while temperatures[i]>temperatures[stack[-1]] and stack:while stack and temperatures[i]>temperatures[stack[-1]]:ans[stack[-1]]=i-stack[-1]stack.pop()stack.append(i)else:stack.append(i)return ans

155. 最小棧 - 力扣(LeetCode)

雙棧,空間換時間,單獨維護一個最小棧,最小棧每一個位置對應棧那個位置的最小值

class MinStack(object):def __init__(self):#minstack棧頂是維護和stack相同長度目前為止最小的元素self.stack=[]self.minstack=[]def push(self, val):""":type val: int:rtype: None"""if not self.minstack:self.minstack.append(val)else:self.minstack.append(min(self.minstack[-1],val))self.stack.append(val)def pop(self):""":rtype: None"""self.stack.pop()self.minstack.pop()def top(self):""":rtype: int"""return self.stack[-1]def getMin(self):""":rtype: int"""return self.minstack[-1]

739. 每日溫度 - 力扣(LeetCode)

while要把stack的判斷放在前面,否則stack[-1]可能報錯

class Solution(object):def dailyTemperatures(self, temperatures):""":type temperatures: List[int]:rtype: List[int]"""#單調棧里存元素的話還要返回去得下標#直接存下標就沒有這個問題#單調棧存放遍歷過但沒結果的數ans=[0]*len(temperatures)stack=[]for i in range(len(temperatures)):if not stack:stack.append(i)elif temperatures[i]>temperatures[stack[-1]]:#while temperatures[i]>temperatures[stack[-1]] and stack:while stack and temperatures[i]>temperatures[stack[-1]]:ans[stack[-1]]=i-stack[-1]stack.pop()stack.append(i)else:stack.append(i)return ans

155. 最小棧 - 力扣(LeetCode)

雙棧,空間換時間,單獨維護一個最小棧,最小棧每一個位置對應棧那個位置的最小值

class MinStack(object):def __init__(self):#minstack棧頂是維護和stack相同長度目前為止最小的元素self.stack=[]self.minstack=[]def push(self, val):""":type val: int:rtype: None"""if not self.minstack:self.minstack.append(val)else:self.minstack.append(min(self.minstack[-1],val))self.stack.append(val)def pop(self):""":rtype: None"""self.stack.pop()self.minstack.pop()def top(self):""":rtype: int"""return self.stack[-1]def getMin(self):""":rtype: int"""return self.minstack[-1]

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

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

相關文章

【NLP(01)】NLP(自然語言處理)基礎

目錄NLP基礎一、基本概念1. 自然語言處理的基本介紹1.1 與語言相關的概念1.2 為什么使用NLP2. NLP的應用方向2.1 **自然語言理解**2.2 自然語言轉換2.3 自然語言生成3. NLP基礎概念4. NLP的發展歷史5. NLP的基本流程二、NLP中的特征工程0. 引入1. 詞向量2. 傳統NLP中的特征工程…

Python工程師進階學習道路分析

本文將分為以下幾個核心部分: 心態與基礎重塑:從“會用”到“精通”核心語言深度:窺探Python的奧秘編程范式與設計模式:寫出優雅的代碼并發與異步編程:釋放多核時代的威力性能分析與優化:讓代碼飛起來深入…

IntelliJ IDEA中Maven的“Sync“與“Reload“詳解:小白的避坑指南

在IntelliJ IDEA中使用Maven時,Sync All Maven Projects(同步)和 Reload All Maven Projects(重新加載)是兩個最常用的操作按鈕。它們看似相似,實則承擔著完全不同的職責。本文將通過通俗易懂的對比和場景分…

網絡地址的詳細計算說明

IP地址分類與計算 IP地址分5類A類 :0開頭,適用于大型網絡 B類 :10開頭,適用于中型網絡 C類 :110開頭,適用于小型網絡 D類 :1110開頭,用于組播 E類 : 1110開頭&#xff0c…

人工智能驅動的現代電商前端開發:從基礎到智能體驗

引言:AI如何重塑電商體驗電子商務行業正在經歷一場人工智能革命。從個性化推薦到視覺搜索,從智能客服到預測分析,AI技術正在徹底改變用戶與電商平臺的交互方式。作為前端開發者,了解如何集成AI功能已成為必備技能。本文將帶您深入…

mimic數據統計

是否能聯通 psql -h 127.0.0.1 -U Shinelon-d mimic --password pgadmin建庫 psql -d mimiciv -f mimic-iv/buildmimic/postgres/create.sql 也可以pgadmin直接運行create.sql 導入csv.gz數據 psql -d mimic -v ON_ERROR_STOP1 -v mimic_data_dirH:/mimic-iv-2.2 -f C:\Users\S…

孟德爾隨機化小試 從軟件安裝數據下載到多種檢驗

孟德爾隨機化(Mendelian Randomization, MR)作為一種利用基因數據推斷因果關系的強大工具,在流行病學研究中應用廣泛。本文將詳細講解MR的核心原理、完整分析流程,并附上關鍵代碼實現,幫助你從零開始完成一次MR分析。1…

記一次:postman請求下載文件的使用方法

前言:筆者的后端接口是swagger,遇到像文件導出下載的功能就實現不了。然后使用postman工具就可以了。注:postman工具使用send下拉選項中有請求下載,如圖完美解決。后續有其它方法在補充。

快速搭建項目(若依)

RuoYi-Vue 是一個 Java EE 企業級快速開發平臺,低代碼的框架。 1.環境要求: 其中MySQL和Redis放在服務器上或者本機上。 2.代碼搭建: 代碼下載地址:https://gitee.com/y_project/RuoYi-Vue,在官方文檔里面可下載若依…

iOS開發之UICollectionView為什么需要配合UICollectionViewFlowLayout使用

1. UICollectionView 的職責分離UICollectionView 本質上只是一個容器,用來展示一系列的 cell(單元格)。 它本身 不關心 cell 的擺放方式,只負責:Cell 的復用(避免性能浪費)Cell 的增刪改查滾動…

一、部署LNMP

一、準備環境操作系統:CentOS 7.x(最少 2 核 CPU 2GB 內存 20GB 磁盤)網絡:能訪問公網(用于下載包)軟件版本:Nginx 1.20MySQL 5.7/8.0PHP 7.4WordPress 6.x(商城插件 WooCommerce&…

【時時三省】vectorCAST 便捷使用技巧

山不在高,有仙則名。水不在深,有龍則靈。 ----CSDN 時時三省 目錄 1,工程的共享 2,工程的關鍵文件保存 2,工作環境目錄下,各個文件夾的作用 1,build 和 environment 的區別 2,vcm的作用 3,tst 文件的妙用 4,配置文件的妙用 5,復制測試環境 6,vectorCAST…

TOPSIS 優劣解距離法總結

TOPSIS 優劣解距離法總結 1. 基本思想 TOPSIS(Technique for Order Preference by Similarity to Ideal Solution)方法通過計算方案與正理想解(最優值)和負理想解(最劣值)的距離,來評價方案的優…

機器學習筆試題

人工智能與機器學習單選題(50道)1. 機器學習的核心目標是:A. 通過硬編碼規則解決問題 B. 從數據中自動學習模式 C. 提高計算機硬件性能 D. 優化數據庫查詢速度2. 以下屬于監督學習任務的是:A. 聚類分析 B. 圖像分類 C. 異常檢測 D…

CISP-PTE之路--10文

1.TCP/UDP 工作在 OSI 哪個層? 應用層 傳輸層 數據鏈路層 表示層 答案:傳輸層 解析:TCP(傳輸控制協議)和 UDP(用戶數據報協議)是 OSI 模型中傳輸層的核心協議,負責端到端的數據傳輸管理,如可靠性(TCP)、實時性(UDP)等。 2.下列哪種設備可以隔離 ARP 廣播幀? …

接口性能測試工具 - JMeter

1. 下載和運行JMeter 是由 Java 語言編寫的, 因此 JMeter 的使用依賴于 Java 環境 - JRE.前往 oracle 官網下載 JMeter 壓縮包.Mac 用戶解壓完成后, 在包內的 bin 目錄下運行 sh jmeter:Windows 用戶直接運行 bin 目錄下的 jmeter.bat:即可進入 JMeter 主頁面:1.1 添加環境變量…

Go語言實戰案例-數據庫事務處理

在實際業務中,很多操作需要保證 要么全部成功,要么全部失敗,否則可能造成數據不一致。比如:? 用戶轉賬(A 賬戶扣款,B 賬戶加款)? 下單支付(生成訂單、扣減庫存、記錄支付&#xff…

為何vivo做了頭顯,小米卻選擇AI眼鏡

在押注下一代智能終端這件事上,手機廠商為何步調不一致?文|游勇編|周路平在手機銷量和創新都陷入停滯的背景下,主流手機廠商正在探索下一代交互終端,試圖尋找新的增長點。今年6月,小米發布了AI眼…

Day24 目錄遍歷、雙向鏈表、棧

day24 目錄遍歷、雙向鏈表、棧顯示指定目錄下的所有 .h 文件 功能描述 遍歷指定目錄(遞歸進入子目錄),查找所有以 .h 為后綴的頭文件,將其完整路徑(路徑 文件名)存儲到雙向鏈表中,并正向或反向…

JupyterLab 安裝(python3.10)

目錄 一、環境 二、安裝 三、啟動Jupyterlab 四、通過chrome瀏覽器進行訪問 五、打開Jupyter Notebook 六、pandas驗證 JupyterLab 是一個基于 Web 的交互式開發環境,是經典 Jupyter Notebook 的下一代版本。它支持多種編程語言(如 Python、R、Juli…