
									 Problem
								
								
									 Solution
								
								
									 Submissions
								
								
							Largest Rectangle in Histogram
								Certification: Advanced Level
								Accuracy: 42.86%
								Submissions: 7
								Points: 12
							
							Write a C++ program to find the largest rectangle in a histogram. Given an array of integers heights representing the histogram's bar heights 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: 
- Step 1: Iterate through each bar in the histogram.
 - Step 2: For each bar, calculate the largest rectangle that can include this bar.
 - Step 3: The largest rectangle has an area of 10 units, formed by bars at indices 2-3 with height 5.
 - Step 4: Return the maximum area found.
 
 
Example 2
- Input: heights = [2, 4, 5, 3, 1]
 - Output: 9
 - Explanation: 
- Step 1: Iterate through each bar in the histogram.
 - Step 2: For each bar, calculate the largest rectangle that can include this bar.
 - Step 3: The largest rectangle has an area of 9 units, formed by bars at indices 1-3 with height 3.
 - Step 4: Return the maximum area found.
 
 
Constraints
- 1 ≤ heights.length ≤ 10^5
 - 0 ≤ heights[i] ≤ 10^4
 - Time Complexity: O(n) where n is the number of bars
 - Space Complexity: O(n)
 
Editorial
									
												
My Submissions
										All Solutions
									| Lang | Status | Date | Code | 
|---|---|---|---|
| You do not have any submissions for this problem. | |||
| User | Lang | Status | Date | Code | 
|---|---|---|---|---|
| No submissions found. | ||||
Solution Hints
- Use a stack to keep track of indices of bars in non-decreasing order of height
 - When you find a bar shorter than the one at the top of the stack, you can calculate areas
 - The width of the rectangle is determined by the distance between the current bar and the bar just before the popped bar
 - Continue popping bars and calculating areas until you find a shorter bar or the stack is empty
 - Remember to process remaining bars in the stack after scanning the entire array