Open In App

Largest Rectangle Area under Histogram using JavaScript | Without using Stacks

Find the largest rectangular area possible in a given histogram where the largest rectangle can be made of a number of contiguous bars. For simplicity, assume that all bars have the same width and the width is 1 unit.  

For example, consider the following histogram with 7 bars of heights {6, 2, 5, 4, 5, 1, 6}. The largest possible rectangle possible is 12 (see the below figure, the max area rectangle is highlighted in red)



Approach:



 

Below is the implementation of the above approach.




<script>
    function getMaxArea(arr, n) {
        var area = 0;
        for (var i = 0; i < n; i++) {
            var left_index;
            var right_index;
  
            for (var j = i; j >= 0; j--) {
                if (arr[j] < arr[i]) {
                    left_index = j;
                    break;
                }
  
            }
            left_index = j;
  
            for (var j = i; j < n; j++) {
                if (arr[j] < arr[i]) {
                    right_index = j;
                    break;
                }
  
            }
            right_index = j;
              
            area = Math.max(area, arr[i] 
                * (right_index - left_index - 1));
        }
        return area;
    }
  
    var array = [6, 2, 5, 4, 5, 1, 6];
    document.write(getMaxArea(array, 5));
</script>

Output:

12

Complexity: We are using linear search to find the minimum value, then the worst-case time complexity of this algorithm becomes O(n^2).


Article Tags :