The problem requires to find the maximum area of a rectangle containing an histogram, given N histog
Solution
If we insert the histogram i, then the rectangle can have height h(i) or larger, because the rectangle must contain the histogram i with height h(i). If we insert the histogram i then we need to look to the left j \in [i-1 .. 0] for adjacent histograms with h(j) > h(i), say those are l(i). If we insert the histogram i then we need to look to the right j \in [i+1 .. n] for adjacent histograms with h(j) > h(i), say those are r(i). These two steps will give us the basis b(i) of rectangle R_i with height h(i) containing the histogram i. In particular b(i) = l(i) + r(i) + 1, and the area for rectangle i will be a(i) = b(i) * h(i). So the final answer would be A = max_i a(i) which can be computed in O(N)
So the main problem is how to compute l(i) and r(i). If we take O(N) then the final outcome would be quadratic. We need a solution in O(1). Can you make it?
What Games Are: Cometh The Hour, Cometh The Xbox?
-
[image: 1358827408-149227280]With Xbox 360 having started well but ended in
a very confused state, I worry that Microsoft is about to carry over much
of it...
6 minutes ago
A well explanatory solution is present at http://tech-queries.blogspot.com/2011/03/maximum-area-rectangle-in-histogram.html
ReplyDelete