# Largest Rectangle in Histogram

/**
* @param height: A list of integer
* @return: The area of largest rectangle in the histogram
*/

public int largestRectangleArea(int[] height) {
int max = 0;
if (height == null || height.length < 1) {
return max;
}
Stack<Integer> stack = new Stack<>();
int i = 0;
int[] newHeight = new int[height.length + 1];
for (int j = 0; j< height.length; j++) {
newHeight[j] = height[j];
}
newHeight[height.length] = 0;
while (i < newHeight.length) {
// if (i == height.length) {
//     int t = stack.pop();
//     max = Math.max(max, height[t] * (stack.isEmpty() ? i : i - stack.peek() - 1));
//     break;
// }

if (stack.isEmpty() || newHeight[stack.peek()] < newHeight[i]) {
stack.push(i);
i++;
} else {
int t = stack.pop();
max = Math.max(max, newHeight[t] * (stack.isEmpty() ? i : i - stack.peek() - 1));
}
}

return max;
}

// public int largestRectangleArea(int[] height) {
//     int max = 0;
//     //2 if (height == null || height.length < 2) {
//     if (height == null || height.length < 1) {
//         return max;
//     }
//     for (int i = 0; i < height.length; i++) {
//         int h = height[i];
//         for (int j = i; j < height.length; j++) {
//             //1 if (height[i] > height[j]) {
//             if (h > height[j]) {
//                 h = height[j];
//             }
//             int width = j - i + 1;
//             max = Math.max(max, width*h);
//         }
//     }
//     return max;
// }

• 本文已收录于以下专栏：

## leetcode_question_85 Largest Rectangle in Histogram

Given n non-negative integers representing the histogram's bar height where the width of each bar is...
• doc_sgl
• 2013年09月18日 14:00
• 10013

## Largest Rectangle in Histogram -- LeetCode

• linhuanmars
• 2014年03月05日 08:52
• 15492

## LeetCode Largest Rectangle in Histogram （单调栈）

Given n non-negative integers representing the histogram's bar height where the width of each bar is...
• u011345136
• 2015年04月11日 21:37
• 829

## LeetCode 84 Largest Rectangle in Histogram (Python详解及实现)

【题目】 Given n non-negative integers representingthe histogram's bar height where the width of each b...
• yangjingjing9
• 2017年08月09日 15:34
• 265

## POJ 2559 Largest Rectangle in a Histogram 单调栈学习

【题意】             给定从左到右多个矩形，已知这此矩形的宽度都为1，长度不完全相等。这些矩形相连排成一排，求在这些矩形包括的范围内能得到的面积最大的矩形，打印出该面积。所求矩形可以横跨...
• just_sort
• 2017年01月05日 13:18
• 638

## POJ-2559-Largest Rectangle in a Histogram-单调栈

• viphong
• 2015年08月25日 22:37
• 582

## LeetCode84 Largest Rectangle in Histogram java题解

• u012249528
• 2015年06月27日 11:21
• 751

## LeetCode --- 84. Largest Rectangle in Histogram

• makuiyu
• 2015年04月03日 17:07
• 2305

## LeetCode84——Largest Rectangle in Histogram

• zhangxiao93
• 2016年01月27日 22:34
• 927

## HDU 1506(Largest Rectangle in a Histogram)动态规划

• B08370108
• 2015年08月10日 15:24
• 453

举报原因： 您举报文章：Largest Rectangle in Histogram 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)