Programmatore Fare clic su (Italiano)


【LeeetCode】 # 84 Bigger rettangolo in istogramma

Descrizione del titolo

Dato n Non- I numeri interi negativi, viene utilizzato per rappresentare l’altezza di ciascuna colonna nell’istogramma. Ogni pilastro è adiacente all’altro e ha una larghezza di 1.
Trova l’area massima del rettangolo che può essere delineato in questo istogramma.

Esempi

Posta in arrivo :

Output: 10

Descrizione

Dato N interi non negativi che rappresentano l’altezza della barra dell’istogramma in cui la larghezza di ogni barra è 1, trova l’area di Il rettangolo più grande nell’istogramma.

Esempio

Input:
Uscita: 10

Soluzione

class Solution { public int largestRectangleArea(int heights) { return helper(heights, 0, heights.length-1); } public int helper(int heights, int left, int right){ if(left>right) return 0; if(left==right) return heights; int minIndex = left; boolean sorted = true; for(int i=left+1; i<=right; i++){ if(heights<heights){ sorted = false; } if(heights<heights){ minIndex = i; } } if(sorted){ int max = 0; for(int i=left; i<=right; i++){ if(heights*(right-i+1)>max) max = heights*(right-i+1); } return max; }else{ int maxLeft = helper(heights, left, minIndex-1); int maxRight = helper(heights, minIndex+1, right); int crossMax = heights*(right-left+1); return Math.max(Math.max(maxLeft, maxRight), crossMax); } }}

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *