1. 程式人生 > >84. 柱狀圖中最大的矩形

84. 柱狀圖中最大的矩形

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

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

以上是柱狀圖的示例,其中每個柱子的寬度為 1,給定的高度為 [2,1,5,6,2,3]

圖中陰影部分為所能勾勒出的最大矩形面積,其面積為 10 個單位。

示例:

輸入: [2,1,5,6,2,3]
輸出: 10

思路:採用動態規劃來做,設dp[i][j]為i點到j點的最大面積,minh[i][j]為i點到j點的最短柱子高度。則狀態轉移方程為:

minh[i][j]=min(minh[i][j], heights[j])        dp[i][j]=minh[i][j]*(j-i);

設re為柱狀圖中最大的矩形面積,不斷更新re.

相關推薦

LeetCode-84.矩形(相關話題:棧)

給定 n 個非負整數,用來表示柱狀圖中各個柱子的高度。每個柱子彼此相鄰,且寬度為 1 。 求在該柱狀圖中,能夠勾勒出來的矩形的最大面積。 以上是柱狀圖的示例,其中每個柱子的寬度為 1,給定的高度為 [2,1,5,6,2,3]。 圖中陰影部分為所能勾勒出的最大矩形

leetcode 84:矩形

每次以第i個值為高的最大值,然後取最大值 以第i個值為高的最大值的計算:  [i]後面的值大於它時  最大值加上一個[i],小於它時跳出,它前面的值做同樣的處理 想法簡單,時間複雜度比較高 int largestRectangleArea(std::vector

84. 矩形

給定 n 個非負整數,用來表示柱狀圖中各個柱子的高度。每個柱子彼此相鄰,且寬度為 1 。 求在該柱狀圖中,能夠勾勒出來的矩形的最大面積。 以上是柱狀圖的示例,其中每個柱子的寬度為 1,給定的高度為 [2,1,5,6,2,3]。 圖中陰影部分為所能勾勒出的最大矩形

Leetcode 84 的面積

給定 n 個非負整數,用來表示柱狀圖中各個柱子的高度。每個柱子彼此相鄰,且寬度為 1 。 求在該柱狀圖中,能夠勾勒出來的矩形的最大面積。 以上是柱狀圖的示例,其中每個柱子的寬度為 1,給定的高度為 [2,1,5,6,2,3]。 圖中陰影部分為所能勾勒出的

Leetcode 84矩形(超詳細的解法!!!)

求在該柱狀圖中,能夠勾勒出來的矩形的最大面積。 以上是柱狀圖的示例,其中每個柱子的寬度為 1,給定的高度為 [2,1,5,6,2,3]。 圖中陰影部分為所能勾勒出的最大矩形面積,其面積為 10 個單位。 示例: 輸入: [2,1,5

LeetCode84矩形

題目描述: 給定 n 個非負整數,用來表示柱狀圖中各個柱子的高度。每個柱子彼此相鄰,且寬度為 1 。 求在該柱狀圖中,能夠勾勒出來的矩形的最大面積。 以上是柱狀圖的示例,其中每個柱子的寬度為 1,給定的高度為 [2,1,5,6,2,3]。 圖中陰影部分為所能勾勒出的

Leetcode 84. Largest Rectangle in Histogram 矩形面積

解決思路:        問題主要考察每一根柱子最大能擴多大,這個行為的實質就是找到柱子左邊剛比它小的柱子的位置在哪裡,以及右邊剛比它小的柱子位置在哪裡,為了模擬這個過程,我們可以用棧模擬這個過程。        棧裡邊儲存的是一個遞增柱子的位置,每次遇到一個比棧頂位

Leetcode刷題記—— 84. Largest Rectangle in Histogram(矩形面積)

一、題目敘述: Given n non-negative integers representing the histogram's bar height where the width of each bar is 1, find the area of large

LeetCode84.矩形

題解 單調棧板子題,建立一個單調遞增棧(棧底到棧頂是遞增的),棧記憶體放的陣列下標,遍歷陣列,將下標存進棧內,以樣例來說 首先棧空,0直接進棧;然後因為nums[stack.peek()] > nums[1],所以0出棧了,同時記錄以num[0]為高的

求條形矩形的面積的兩種演算法

一.問題描述        給出一個條形圖,假設每個條形的底邊長為1,以相鄰的若干個條形中最短的條形的高度為一條邊的長度,再把它們的底邊相加作為另一條邊的長度可得到一個矩形,如圖中紅框所示,現在要求出最大矩形的面積。 二.兩種演算法 2.1暴力演算法       窮舉所

矩形——O(n)時間複雜度java實現

最近在刷leetcode,又碰到了這道題,想起來當時演算法有些瑕疵,所以將最新的AC程式碼更新在最上面做個對比,具體思路見註釋. public class Solution { // 思路: 主要是使用一個棧來儲存陣列元素的下標,注意是儲存‘下標’。

Poj 2559 Largest Rectangle in a Histogram(形統計矩形面積)

 給出一個柱形統計圖中,求其中的最大矩形面積 做完這道題,搜了一下題解大部分基本都是單調棧......然而做之前並不知道這是什麼,其實用遞推也可以做這道題,理解起來比較容易。 用兩個陣列l,r記

Largest Rectangle in Histogram(在畫出矩形

Given n non-negative integers representing the histogram's bar height where the width of each bar is 1, find the area of largest rectang

【echarts】設定固定寬度(寬度)

//柱狀圖 var barGragh = document.getElementById('barGragh'); var barChart = echarts.init(barGragh); var barChartoption

luoguP3943 星空 短路 一般匹配 壓Dp

luoguP3943 星空 題目傳送門 分析 區間操作很難搞,一個巧妙的轉化是,把原區間差分,這樣的話異或操作就變成了將某兩個位置取反。 原問題轉化為某個01序列上有若干個1,每次可以把距離為

vue專案使用Echarts 動態更改圖表資料 , Vue 折線等圖表動態重新整理 ,

問題:在vue元件中,用echarts外掛 動態獲取、修改圖表資料 解決:已解決! 第一步:開啟cmd命令視窗 安裝echarts依賴 安裝:npm install echarts -S 第二步:在main.js中全域性引入   //引入echarts的圖表外掛

關於安卓專案統計資料achartengine類(包括餅,折線等)的使用

       最近由於專案中需要統計資料,通過比較直觀的方式展示給使用者,所以就抽時間學習了一個統計圖的類庫achartengine,裡面包含統計中所需的餅狀圖,柱狀圖,折線圖等等,所以就拿出來給大家分享一下,希望大家相互學習,如有不足之處

在echarts兩側新增亮燈圓點圖示—markPoint用法

在echarts柱狀圖兩側中新增亮燈圓點圖示 需求背景 本需求是專案實際開發需求,亮燈圓點作為預警風險情況,分佈在柱狀圖的兩側, 如下圖所示: 從無到有的開發思路 (1)首先,本主之前未做過類似的開發需求,但是既然客戶提出這樣的需求,我們就儘量

Sigmaplot學習筆記1——製作簡單的

什麼!居然是英文版。。。 然而搞科學研究不懂英文怎麼行呢? 製作最簡單的柱狀圖 開啟Sigmaplot14,建立空白資料表,點選OK 將資料複製或者輸入到表格中,不用管此時資料後面的4位小數,製圖時,年份後小數自動消失   點選簡單垂直柱狀圖

echarts折線之間的轉換

echarts中折線圖、柱形圖、資料檢視的轉換需要toolbox裡面的內容(也就是加粗的部分)        // 基於準備好的dom,初始化echarts例項     var day = echarts.init(docum