leetcode84. 柱状图中最大的矩形
生活随笔
收集整理的這篇文章主要介紹了
leetcode84. 柱状图中最大的矩形
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一:題目
二:上碼
class Solution { public:/**思路:1.這里單調棧的順序是 從棧頂到棧底 是遞減的 因為我們在求出 比棧頂下標所對應的元素的小的元素時候要將棧頂元素出棧 此時 新的棧頂元素(left) 和 已出的棧頂元素(mid) 以及 height[i] (right)這是時候我們可以進行一次求取最值的 ans = max(anx,height[mid]*(right-left))*/int largestRectangleArea(vector<int>& height) {height.insert(height.begin(),0);height.push_back(0);stack<int> st;st.push(0);int ans = 0;for(int i = 1; i < height.size(); i++) {if (height[i] > height[st.top()]) {st.push(i);} else if (height[i] == height[st.top()]) {st.push(i);} else {while(!st.empty() && height[i] < height[st.top()]) {//這里我們從棧頂到棧底是遞減的int mid = st.top();st.pop();int left = st.top();int right = i;int h = height[mid];//矩形的高int w = right - left - 1;ans = max(ans,h*w);}st.push(i);}}return ans;} };
水了一道 啊嗚嗚嗚嗚嗚嗚嗚
總結
以上是生活随笔為你收集整理的leetcode84. 柱状图中最大的矩形的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 选电动还是手动,成品还是DIY?升降桌选
- 下一篇: 打造优质桌面文化的第一步打造优质桌面文化