当前位置: 首页 > 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;}
};
http://www.lqws.cn/news/535735.html

相关文章:

  • 鸿蒙边缘智能计算架构实战:从环境部署到分布式推理全流程
  • window显示驱动开发—DirectX 图形内核子系统(一)
  • 树莓派超全系列教程文档--(67)rpicam-apps可用选项介绍之检测选项
  • 算法-最大子数组
  • 【Python】For
  • Agentic AI爆发前夜,合作伙伴如何把握时代机遇?
  • 2D写实交互数字人如何重塑服务体验?
  • MP1652GTF-Z:MPS高效3A降压转换器 工业5G通信专用
  • windows内核句柄判断有效
  • LeetCode刷题-top100(和为 K 的子数组)
  • ISP Pipeline(4): Anti Aliasing Noise Filter 抗锯齿与降噪滤波器
  • 【thinkphp5】Session和Cache记录微信accesstoken
  • QT实现一个三轴位移台的控制界面
  • QT Creator构建失败:-1: error: Unknown module(s) in QT: serialport
  • 【CMake基础入门教程】第七课:查找并使用第三方库(以 find_package() 为核心)
  • 【缓存技术】深入分析如果使用好缓存及注意事项
  • Flux.create
  • Linux 内核 TCP 的核心引擎:tcp_input.c 与 tcp_output.c 的协同之道
  • ubuntu安装docker遇到权限问题
  • TCP 重传机制详解:原理、变体与故障排查应用
  • 利用python和libredwg库解析dwg格式文件输出GeoJSON
  • Mac电脑如何搭建基于java后端的开发的各种工具服务
  • 自动获取文件的内存大小怎么设置?批量获取文件名和内存大小到Excel中的方法
  • IDEA下载不了插件了怎么办?从本地导入插件详细教程!
  • ubuntu 远程桌面 xrdp + frp
  • 【工具推荐】WaybackLister——发现潜在目录列表
  • OpenBayes 一周速览丨Nanonets-OCR-s深度语义理解,精准结构化转换;HLE人类问题推理基准上线,含2.5k题目,助力封闭式评估体系构建
  • 环境太多?不好管理怎么办?TakMll 工具帮你快速切换和管理多语言、多版本情况下的版本切换。
  • 基于SpringBoot和Leaflet的区域冲突可视化-以伊以冲突为例
  • 【Pytorch】语言模型上的动态量化