Largest Rectangle Hackerrank Solution in Python
Hackerrank is a popular online platform for programming challenges, and one of the most popular problems on the platform is the "Largest Rectangle" problem. This problem requires you to find the largest rectangular area in a given histogram. In this article, we will walk you through the solution of this problem in Python.
You are given a list of heights representing a histogram's heights. Your task is to find the largest rectangular area in the histogram. The width of each rectangle is considered to be 1, and the height of the corresponding histogram bar gives the height.
To solve this problem, we can use the stack data structure. We start by initializing an empty stack and iterating through the list of heights. For each height, we perform the following steps:
Let's see how this solution looks in Python code:
In this code, we initialize an empty stack and a variable to store the maximum area. After that, we use a while loop to iterate through the heights list. Within the loop, we check if the stack is empty or if the current height is greater than or equal to the height at the top of the stack. If either of these conditions is true, we push the current index onto the stack and increment i by 1.
If the current height is less than the height at the top of the stack, we pop the top index from the stack and calculate the area of the rectangle formed by the height at the popped index and the current index. We use the formula (i - stack[-1] - 1) * h[top] to calculate the area, where i is the current index, stack[-1] is the index at the top of the stack, and h[top] is the height at the popped index.
We repeat step 2 until the height at the top of the stack is less than or equal to the current height. For each popped index, we calculate the area of the rectangle as (i - stack[-1] - 1) * h[top]. If the stack is empty, we use the formula i * h[top] instead.
Let's test our solution on a sample input:
Here, we have a histogram with heights [6, 2, 5, 4, 5, 1, 6]. The largest rectangle in this histogram has height 4 and width 3, so its area is 12. Our function correctly returns 12 as the output.
In conclusion, we have seen how to solve the "Largest Rectangle" problem on Hackerrank using the stack data structure in Python. This problem is a great example of how to use the stack data structure to solve a complex problem efficiently. The key insight is that we can use the stack to keep track of the indices of bars in the histogram that form rectangles of increasing height. By doing this, we can avoid computing areas that we know will be smaller than the maximum area we have found so far.
JavaTpoint offers too many high quality services. Mail us on h[email protected], to get more information about given services.
JavaTpoint offers college campus training on Core Java, Advance Java, .Net, Android, Hadoop, PHP, Web Technology and Python. Please mail your requirement at [email protected].
Duration: 1 week to 2 week