# [Solved] Given an array of integers heights representing the histogram’s bar height where the width of each bar is 1, return the area of the largest rectangle in the histogram. ## Question

Given an array of integers `heights` representing the histogram’s bar height where the width of each bar is `1`, return the area of the largest rectangle in the histogram.

Example 1:

```Input: heights = [2,1,5,6,2,3]
Output: 10
Explanation: The above is a histogram where width of each bar is 1.
The largest rectangle is shown in the red area, which has an area = 10 units.
```

Example 2:

```Input: heights = [2,4]
Output: 4
```

Constraints:

• `1 <= heights.length <= 105`
• `0 <= heights[i] <= 104`

## Python Solution

```class Solution:
def largestRectangleArea(self, A: List[int]) -> int:
stack = []
maxi = 0
i = 0
while i<len(A):
if len(stack)==0 or A[stack[-1]]<=A[i]:
stack.append(i)
i+=1
else:
top = stack.pop()
if len(stack)==0:
ar = A[top]*(i)
else:
ar = A[top]*(i-stack[-1]-1)
maxi = max(maxi,ar)

while len(stack)!=0:
top = stack.pop()
if len(stack)==0:
ar = A[top]*(i)
else:
ar = A[top]*(i-stack[-1]-1)
maxi = max(maxi,ar)

return(maxi)```
Scroll to Top