leetcode - Largest Rectangle in Histogram

来源:互联网 发布:网络二层 三层区别 编辑:程序博客网 时间:2024/06/05 19:04
class Solution {public:    int largestRectangleArea(vector<int>& heights) {        int result = 0;        stack<int> s;        heights.push_back(0);        for (int i = 0; i < heights.size(); ++i) {            while (!s.empty() && heights[s.top()] > heights[i]) {                int last = s.top();                s.pop();                if (s.empty()) {                    result = max(result, heights[last]*i);                }                else {                    result = max(result, heights[last]*(i-1-s.top()));                }            }            s.push(i);        }        return result;    }};
  • AC
  • 26ms
  • beat 22.04%

    1.在原数据的vector中添加0作为结尾,是一个比较好的trick
    2.贪心法

0 0
原创粉丝点击