Programador Prema (Galego)


【Leetcode】 # 84 Rectángulo máis grande en Histograma

Descrición do título

Dado N non Integers negativos, úsase para representar a altura de cada columna no histograma. Cada piar está adxacente entre si e ten un ancho de 1.
Atopar a área máxima do rectángulo que pode ser delineado neste histograma.

Exemplos

Caixa de entrada :

Saída: 10

Descrición

Dedes números enteiros non negativos que representan a altura da barra do histograma onde o ancho de cada barra é 1, atopa a área de Rectángulo máis grande do histograma.

exemplo

Entrada:
Saída: 10

solución

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); } }}

Deixa unha resposta

O teu enderezo electrónico non se publicará Os campos obrigatorios están marcados con *