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.
A rectangle must be contained entirely within the histogram - it cannot extend above any bar it spans.
#
# #
# #
# # #
# # # # #
# # # # # #
2 1 5 6 2 3
Input: heights = [2, 1, 5, 6, 2, 3] Output: 10 Explanation: The largest rectangle spans bars at index 2 and 3 (heights 5 and 6), giving area = min(5,6) * 2 = 10.
Input: heights = [2, 4] Output: 4 Explanation: The largest rectangle is the single bar of height 4, giving area = 4 * 1 = 4.
1 <= heights.length <= 10^50 <= heights[i] <= 10^4heights = [2, 1, 5, 6, 2, 3]