From c58800fae130bc98264f0960721e212cd7898766 Mon Sep 17 00:00:00 2001 From: hj24 Date: Sat, 27 Apr 2019 20:39:03 +0800 Subject: [PATCH] commit for leetcode 84 --- C++/084. Largest Rectangle in Histogram.cpp | 22 +++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 C++/084. Largest Rectangle in Histogram.cpp diff --git a/C++/084. Largest Rectangle in Histogram.cpp b/C++/084. Largest Rectangle in Histogram.cpp new file mode 100644 index 0000000..72b8300 --- /dev/null +++ b/C++/084. Largest Rectangle in Histogram.cpp @@ -0,0 +1,22 @@ +class Solution { +public: + int largestRectangleArea(vector& heights) { //Monotone Stack + if (heights.empty()) + return 0; + heights.push_back(-1); + stack stk; + int ans = 0; + for (int i = 0; i < heights.size(); ++i){ + while (stk.size() && heights[stk.top()] > heights[i]){ + int cur = stk.top(); + stk.pop(); + if (stk.empty()) + ans = max(ans, heights[cur] * i); + else + ans = max(ans, heights[cur] * (i - stk.top() - 1)); + } + stk.push(i); + } + return ans; + } +}; \ No newline at end of file