力扣 hot100 Day68

84. 柱狀圖中最大的矩形

給定?n?個非負整數,用來表示柱狀圖中各個柱子的高度。每個柱子彼此相鄰,且寬度為 1 。

求在該柱狀圖中,能夠勾勒出來的矩形的最大面積。

class Solution {
public:int largestRectangleArea(vector<int>& heights) {stack<int> stk;int max_area = 0;int n = heights.size();heights.push_back(0);n += 1;for (int i = 0; i < n; ++i) {while (!stk.empty() && heights[i] < heights[stk.top()]) {int height = heights[stk.top()];stk.pop();int width = stk.empty() ? i : i - stk.top() - 1;max_area = max(max_area, height * width);}stk.push(i);}heights.pop_back();        return max_area;}
};

單調棧,棧內保存一個自棧底遞增至棧頂的序列

每個元素都會入棧,當當前數小于棧頂值時,開始處理棧內元素,由于此時棧頂慢慢彈出遞減,而寬度慢慢彈出遞增,所以此時比較是有意義的。

對于一個特定高度,最大的矩形就是左右邊界都比該高度更高的范圍,這在該循環中都遍歷到了

開始時在原序列末加入0值,防止最后有元素未處理

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

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

相關文章

生成式AI時代,Data+AI下一代數智平臺建設指南

DataAI下一代數智平臺建設指南一、生成式AI時代的五大數據挑戰二、驅動DataAI平臺建設的核心要素主動選擇&#xff1a;構建競爭壁壘被動應對&#xff1a;解決現有痛點三、DataAI平臺的六大關鍵能力四、騰訊云DataAI產品方案與實踐1. 數據與AI協同層2. 開發與治理層3. 存儲與計算…

FPGA學習筆記——SPI通訊協議簡介

目錄 一、SPI通訊協議簡介 二、SPI物理層 三、SPI協議層 1.通訊模式 &#xff08;一&#xff09;模式零 &#xff08;二&#xff09;模式一 &#xff08;三&#xff09;模式二 &#xff08;四&#xff09;模式三 2.通訊流程 一、SPI通訊協議簡介 SPI&#xff08;Seria…

JavaScript核心概念解析:從基礎語法到對象應用

導語&#xff1a;本文系統梳理JavaScript的核心知識框架&#xff0c;適用于編程入門學習者。內容涵蓋基礎語法、數據類型、函數應用及內置對象&#xff0c;幫助讀者構建清晰的JS知識體系。一、語言基礎與執行原理瀏覽器執行機制渲染引擎&#xff1a;解析HTML/CSS&#xff08;如…

在 Kotlin 中使用函數類型和 lambda 表達式

參考官方文檔: https://developer.android.google.cn/codelabs/basic-android-kotlin-compose-function-types-and-lambda?hl=zh-cn#0 1、 將函數存儲在變量中 作為一種一級結構,函數也屬于數據類型,因此,可以將函數存儲在變量中、將函數傳遞到函數,以及從函數返回函數…

計算機硬件組成原理

&#x1f9e0; 一、計算機的硬件組成&#xff1a;五大核心部件 根據“馮諾依曼體系結構”&#xff0c;現代計算機主要由這 5大部分組成&#xff1a;部件作用通俗解釋1?? 運算器&#xff08;ALU&#xff09;負責算術和邏輯運算會加減乘除和做判斷的“計算工廠”2?? 控制器&a…

告別 window.open,擁抱全新浮窗體驗!

深入了解 Document Picture-in-Picture API&#xff0c;并對比 Modal 的最佳使用場景在前端開發中&#xff0c;我們經常會遇到這樣的需求&#xff1a;彈出一個浮動窗口來顯示一些實時信息、工具欄或視頻內容。過去我們會用 window.open()&#xff0c;后來越來越多的開發者傾向于…

Python爬蟲實戰:研究weiboSpider技術,構建新浪微博數據采集系統

1. 引言 1.1 研究背景 在信息時代,社交媒體已成為人們獲取信息、表達觀點的重要渠道。微博作為其中的典型代表,擁有龐大的用戶群體和活躍的內容生態。截至 2023 年底,微博月活躍用戶數已超過 5.8 億,日均發博量達數千萬條,數據涵蓋社會熱點、公眾情緒、消費偏好等多維度…

HashMap初始化容量為10,還未添加數據時,它的實際容量是多少?

在Java中&#xff0c;當使用 new HashMap<>(10) 初始化一個容量為10的 HashMap 但尚未添加任何數據時&#xff0c;其實際容量&#xff08;底層數組的長度&#xff09;不是10&#xff0c;而是16。原因如下&#xff1a;關鍵機制解析&#xff1a;容量必須是2的冪HashMap要求…

前端開發:CSS(2)—— 選擇器

前面我們初步學習了CSS&#xff0c;對其有了基本的認識。下面我們來具體學習CSS中的選擇器。 目錄 選擇器的種類 1.基礎選擇器 &#xff08;1&#xff09;標簽選擇器 &#xff08;2&#xff09;類選擇器 &#xff08;3&#xff09;id選擇器 &#xff08;4&#xff09;通…

人工智能2.0時代的人才培養和通識教育

目錄引言&#xff1a;從"機器模仿"到"智能協同"的時代跨越一、人工智能2.0的技術演進&#xff1a;從規則到大模型的三次躍遷1. 人工智能0.0&#xff08;1956-2006&#xff09;&#xff1a;規則驅動的"專家系統時代"2. 人工智能1.0&#xff08;20…

管理索引常用的API

二.管理索引常用的API 1.查看現有索引信息 查看所有索引信息列表&#xff1a;curl -X GET http://elk101.k8s.com:9200/_cat/indices?v查看某個索引的詳細信息:curl -x GET http://elk101.k8s.com:9200/linux-2020-10-2溫馨提示: (1)"?v"表示輸出表頭信息&#xff…

當文檔包含表格時,如何結合大模型和OCR提取數據?

在AI應用極速發展的當下&#xff0c;LLM&#xff08;大語言模型&#xff09;與RAG&#xff08;檢索增強生成&#xff09;系統已成為構建智能問答、知識管理等高階應用的核心引擎。 然而&#xff0c;許多團隊在項目落地時遭遇了現實的挑戰&#xff1a;模型的實際表現——無論是回…

機器學習工程化 3.0:從“實驗科學”到“持續交付”的 7 個關卡

一、背景&#xff1a;為什么 90% 的 ML 項目死在了實驗臺&#xff1f; Gartner 2024 報告顯示&#xff0c;87% 的企業機器學習項目未能走出實驗室。原因并非算法落后&#xff0c;而是缺少“工程化骨骼”&#xff1a;數據漂移無人發現&#xff0c;模型上線一周就失效&#xff1b…

BGP筆記整理

一、BGP 基礎概念1. 產生背景BGP&#xff08;Border Gateway Protocol&#xff09;是自治系統&#xff08;AS&#xff09;間的動態路由協議&#xff0c;屬于外部網關協議&#xff08;EGP&#xff09;&#xff0c;用于在不同 AS 之間傳遞路由信息。2. 自治系統&#xff08;AS&am…

Mysql-MVCC機制

1. MVCC機制詳解 在Read Uncommitted級別下&#xff0c;事務總是讀取到最新的數據&#xff0c;因此根本用不到歷史版本&#xff0c;所以MVCC不在該級別下工作。 在Serializable級別下&#xff0c;事務總是順序執行。寫會加寫鎖&#xff0c;讀會加讀鎖&#xff0c;完全用不到MVC…

MySQL面試題及詳細答案 155道(061-080)

《前后端面試題》專欄集合了前后端各個知識模塊的面試題&#xff0c;包括html&#xff0c;javascript&#xff0c;css&#xff0c;vue&#xff0c;react&#xff0c;java&#xff0c;Openlayers&#xff0c;leaflet&#xff0c;cesium&#xff0c;mapboxGL&#xff0c;threejs&…

大數據中需要知道的監控頁面端口號都有哪些

以下是一些大數據中常見組件監控頁面的端口號&#xff1a;1. Hadoop&#xff1a;HDFS Web UI在Hadoop2.x版本中默認端口為50070&#xff0c;在Hadoop3.x版本中為9870&#xff0c;用于查看集群文件及目錄&#xff1b;YARN Web UI端口為8088&#xff0c;可查看MR執行情況&…

時隔六年!OpenAI 首發 GPT-OSS 120B / 20B 開源模型:性能、安全與授權細節全解

為什么這次開放值得關注&#xff1f; OpenAI 時隔六年再次“放權重”&#xff0c;一次性公布 gpt-oss-120b 與 gpt-oss-20b 兩個尺寸&#xff0c;并允許商業化二次開發 —— 采用 Apache 2.0 許可且可直接在 Hugging Face 下載(WIRED)。官方表示&#xff0c;開放旨在 降低門檻…

漏洞全講解之中間件與框架漏洞(數字基礎設施的“阿喀琉斯之踵“)

一、中間件漏洞的嚴峻現狀根據Synopsys《2023年開源安全報告》顯示&#xff1a;企業應用中平均包含158個中間件依賴高危漏洞年增長率達62%&#xff08;X-Force數據&#xff09;最危險漏洞&#xff1a;Log4j2&#xff08;CVE-2021-44228&#xff09;影響全球83%企業平均修復延遲…

Leetcode——菜鳥筆記2(移動0)

文章目錄題目解題題目 解題 /*nums【0&#xff0c;1&#xff0c;0&#xff0c;3&#xff0c;2】numsSize5 nums【1.3.2.0.0】 1.找非零數&#xff0c;依次放在前面 2.剩下補0 */ void moveZeroes(int* nums, int numsSize) {int count0 0;int temp 0;for (int i 0; i < …