class Solution {\npublic:\n int largestRectangleArea(vector& heights){\n int ans = 0;\n vector st;\n heights.insert(heights.begin(), 0);\n heights.push_back(0);\n for (int i = 0; i < heights.size(); i++){\n while (!st.empty() && heights[st.back()] > heights[i]){\n int cur = st.back();\n st.pop_back();\n int left = st.back() + 1;\n int right = i - 1;\n ans = max(ans, (right - left + 1) * heights[cur]);\n }\n st.emplace_back(i);\n }\n return ans;\n }\n};//转换成Dart内容:class Solution {\n int largestRectangleArea(List heights) {\n int ans = 0;\n List st = [];\n heights.insert(0, 0);\n heights.add(0);\n for (int i = 0; i < heights.length; i++) {\n while (st.isNotEmpty && heights[st.last] > heights[i]) {\n int cur = st.removeLast();\n int left = st.isEmpty ? 0 : st.last + 1;\n int right = i - 1;\n ans = max(ans, (right - left + 1) * heights[cur]);\n }\n st.add(i);\n }\n return ans;\n }\n}

Largest Rectangle Area in Histogram - C++ and Dart Solutions

原文地址: https://www.cveoy.top/t/topic/qgpD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录