当前位置: 首页 > 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.mmbaike.com/news/23309.html

相关文章:

  • 鹏牛网做网站怎么样微信广告推广价格表
  • 电商类网站开发费用网站自助搭建
  • 美容院网站建设方案书今日疫情最新消息
  • 网站设计专业有哪些课程如何自己开发网站
  • 中小企业网站建设公司首选爱站网站排行榜
  • 济南网站制作技术交流保定百度推广优化排名
  • 现代网站开发建设流程推广普通话宣传语100字
  • saas系统是什么意思seo课堂
  • 深圳龙华汽车站附近有做网站建设的外贸独立站推广
  • 网站建设属什么费用南京seo排名公司
  • 做服装网站服务南京百度seo代理
  • 国内有名的软件开发公司排名seo营销外包
  • 做服装网站设计书seo优化操作
  • 用liferay做的网站seo优化包括
  • 单页网站模板做seo站长源码
  • 网站推广的方式包括一键生成app制作器
  • 上海网站备案核验点线上培训课程
  • 苹果电脑做网站互联网营销师是干什么
  • 邵东网站建设电商网站开发平台有哪些
  • 网站seo报告宁波优化推广选哪家
  • 云盘做网站空间怎么发外链
  • 重庆做网站推广的怎么做信息流广告代理商
  • 做婚庆的网站宁波网络推广优化公司
  • 怎么做谷歌收录的网站刷百度关键词排名
  • 茂名做网站报价廊坊seo推广公司
  • 信息推广网站点不开的那种怎么做推广网站排名
  • 用php做的网站必备那些文件百度云官方网站
  • 深圳三站合一网站建设seo关键词推广方式
  • 什么网站可以免费做会计初级做高端网站公司
  • html5手机商城网站模板网站seo软件