Friday, February 27, 2015

LeetCode Largest Rectangle in Histogram

Here is the link for the explanation.

http://www.cnblogs.com/lichen782/p/leetcode_Largest_Rectangle_in_Histogram.html


public int largestRectangleArea(int[] height) {
     Stack<Integer> stack = new Stack<Integer>();
     int i = 0;
     int maxArea = 0;
     int[] h = new int[height.length+1];
     h = Arrays.copyOf(height, height.length+1);
   
     while (i<h.length) {
         if (stack.isEmpty() || h[stack.peek()] <= h[i]) {
             stack.push(i++);
         } else {
             int t = stack.pop();
             maxArea = Math.max(maxArea, h[t]* (stack.isEmpty()? i : i-stack.peek()-1));
         }
     }
     return maxArea;
    }

No comments:

Post a Comment