当前位置: 首页 > news >正文

算法第48天|单调栈:42. 接雨水、84.柱状图中最大的矩形

42. 接雨水

题目

在这里插入图片描述

思路与解法

class Solution {
public:int trap(vector<int>& height) {stack<int> st;st.push(0);int res = 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()]){while(!st.empty() && height[i] > height[st.top()]){int mid = height[st.top()];st.pop();if(!st.empty()){int h = min(height[st.top()], height[i]);res += (h-mid)*(i - st.top() - 1);}}st.push(i);}}return res;}
};

84.柱状图中最大的矩形

题目

在这里插入图片描述

思路与解法

class Solution {
public:int largestRectangleArea(vector<int>& heights) {stack<int> st;heights.insert(heights.begin(), 0);heights.push_back(0);st.push(0);int res = 0;for(int i=1;i<heights.size();i++){if(heights[i] >= heights[st.top()]){st.push(i);}else if (heights[i] < heights[st.top()]){while(!st.empty() && heights[i] < heights[st.top()]){int mid = st.top();st.pop();int left = st.top();int right = i;int h = heights[mid];int area = h * (right - left -1);res = res > area ? res:area; }st.push(i);}}return res;}
};

相关文章:

  • Java——Spring 非注解开发:IoC/DI 与 Bean 管理实战(含第三方组件整合)
  • 【机器学习深度学习】交互式线性回归 demo
  • day48-硬件学习之GPT定时器、UART及I2C
  • 【开源工具】Windows一键配置防火墙阻止策略(禁止应用联网)| 附完整Python源码
  • 事件循环(Event Loop)机制对比:Node.js vs 浏览器​
  • ethers.js express vue2 定时任务每天凌晨2点监听合约地址数据同步到Mysql整理
  • 【CMake基础入门教程】第六课:构建静态库 / 动态库 与安装规则(install)
  • MySQL至KES迁移最佳实践
  • 用 Spark 优化亿级用户画像计算:Delta Lake 增量更新策略详解
  • vue3 json 转 实体
  • 2.1、STM32 CAN外设简介
  • Vue3 中 Axios 深度整合指南:从基础到高级实践引言总结
  • MR30分布式IO:产线改造省时 70%
  • 22. 括号生成
  • AI编程工具深度对比:腾讯云代码助手CodeBuddy、Cursor与通义灵码
  • ubuntu20.04如何给appImage创建快捷方式
  • EXILIUM×亚矩云手机:重构Web3虚拟生存法则,开启多端跨链元宇宙自由征途
  • 【JeecgBoot AIGC】打造智能AI应用
  • 51c~嵌入式~PLC~三菱~合集1
  • 记dwz(JUI)前端框架使用之--服务端响应提示框