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

聊城网站建设策划建设公司海原县住房和城乡建设局网站

聊城网站建设策划建设公司,海原县住房和城乡建设局网站,小程序有哪些,网站文章模块题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 : 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2,…

题目

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。
请添加图片描述

示例 :

输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]
输出:6
解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图。
在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 

思路:

从题目中我们可以知道:只有凹陷的地方才可以存储雨水,那么高度一定是先减后增,所以当我们遍历到这个位置时,前面减的地方(即凹陷的地方)一定会存储雨水,这时我们将凹陷处出栈就可以计算它能存储的雨水量了。
因此我们需要设计一个单调递减栈:维护一个单调栈,单调栈存储的是下标,满足从栈底到栈顶的下表对应的数组height中的元素递减。栈顶的元素就是凹槽的最低点
此外单调栈还有一个需要注意的地方:弹出栈顶后判断栈是否为空,因为当栈为空时,说明左边不存在最大值,无法存储雨水。

Code:

class Solution {
public:int trap(vector<int>& height) {if(height.size() <= 1){return 0;}stack<int>st;int sum=0;st.push(0);for(int i=1 ; i < height.size() ; i++){while(!st.empty() && height[i] > height[st.top()]){int vis = st.top();st.pop();//其实不需要特判栈顶元素一直相等(即凹槽最低处高度相同)的情况//因为每次计算雨水的高度都是计算的//min(凹槽的左侧高度,当前非递减点的高度) 减去 凹槽的高度//因此当凹槽连续的高度相同时只有凹槽最左侧的才会计算出有效值其余都是0if(!st.empty()){int l = i - st.top() -1;int h = min(height[i] , height[st.top()]) - height[vis];sum += l*h;}}st.push(i);}return sum;}
};
http://www.yayakq.cn/news/662398/

相关文章:

  • 青州住房建设局网站wordpress管理员页面404
  • 苏州优化网站建设石家庄推广网站
  • 长沙律师网站建设高端网站建设的网站
  • 免费的网站域名查询方法有哪些有趣又有深意的广告
  • 个旧做网站哪家公司好建设一个企业网站到底要多少钱
  • 长沙零零七网站建设企信网是什么网站
  • 学习网站模板wordpress开发环境搭建
  • 包头建网站公司哪家强html简单网页成品免费
  • 国外做详情页网站广西建设工程质量安全监督网站
  • 个性化网站建设企业网站怎么设置404页面
  • 北京网络职业学院学费多合一seo插件破解版
  • 太原网站模板公司国内优秀的企业网站
  • 重生做皇帝小说网站精准营销的作用
  • 随意设计一个网站网站备案服务码口令是什么意思
  • 建设网站建设白度经验中小企业网站制作模板
  • 郑州网站制作生产厂商定制吉林省长春市
  • app设计欣赏网站wordpress文章添加目录
  • 织梦网站视频做木皮的网站
  • 开展网络营销的企业网站有哪些WordPress使用typecho主题
  • 临沂做网站建设的公司wordpress文章推送邮箱
  • 越秀营销型网站建设优化大师官网
  • 全国设计网站公司网站1小时快速搭建网站
  • 汕头澄海网站建设浙江省建设安监站网站
  • 个人网站 做外贸做h5好点的网站
  • 计算机网站开发的目的一句吸引人的广告语
  • 网站管理后台下载网站建设费用属于业务宣传费吗
  • 网站系统建设开票要开什么wordpress演示站
  • 网站建设违法行为在阿里怎样做单页销售网站
  • 网站职业培训机构请详细说明网站开发流程及原则
  • 镇江百度网站长沙广告公司电话