力扣84.柱状图中最大的矩形

力扣84.柱状图中最大的矩形

  • 初始化pre_max 为-1 存距离最近的小于h[i]的元素下标

  • 初始化suf_max 为 n 存距离最近的小于h[i]的元素下标

cpp 复制代码
  class Solution {
  public:
      int largestRectangleArea(vector<int>& heights) {
          int n = heights.size();
          //分别初始化-1 和 n
          vector<int> pre_max(n,-1),suf_max(n,n);
          stack<int> st;
          for(int i=0;i<n;i++)
          {
              while(!st.empty() && heights[i] <= heights[st.top()]) st.pop();
              if(!st.empty()) pre_max[i] = st.top();
              st.push(i);
          }
          
          st = stack<int>();
          for(int i=n-1;i>=0;i--)
          {
              while(!st.empty() && heights[i] <= heights[st.top()]) st.pop();
              if(!st.empty()) suf_max[i] = st.top();
              st.push(i);
          }
      
          int res=0;
          for(int i=0;i<n;i++)
          {
              res = max(res,(suf_max[i] - pre_max[i] - 1) * heights[i]);
          }
          return res;
      }
  };
相关推荐
秋深枫叶红几秒前
嵌入式第二十七篇——数据结构——栈
c语言·数据结构·学习·算法
稚辉君.MCA_P8_Java6 分钟前
Gemini永久会员 Java 返回最长有效子串长度
java·数据结构·后端·算法
Swift社区19 分钟前
LeetCode 440 - 字典序的第 K 小数字
算法·leetcode·职场和发展
youngee1120 分钟前
hot100-42二叉树的右视图
算法
CoovallyAIHub23 分钟前
如何让机器看懂视觉世界?从图像匹配理解环境开始
深度学习·算法·计算机视觉
hweiyu0028 分钟前
数据结构:树
数据结构
Mxsoft61934 分钟前
某次PMU数据不同步,动态时钟补偿算法救场!
算法
中國龍在廣州35 分钟前
李飞飞最新思考:语言模型救不了机器人
人工智能·深度学习·算法·语言模型·自然语言处理·chatgpt·机器人
deepdata_cn36 分钟前
时序性步态数据处理的RNN及LSTM算法
rnn·算法·lstm
RFSOC+FPGA38 分钟前
林肯实验室文献解读(1)-相控阵列架构实现可扩展的集成感知和通信
算法·架构