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

签约做网站模板短视频seo推广

签约做网站模板,短视频seo推广,中国建设信息港网站,wordpress tutorial给定一个数组,代表柱子的高度 求出下雨之后,能接的水有多少单位。我们将每一个柱子想象成一个水桶,看他能接多少水 以这个水桶为例,他所能接的水取决于左边的柱子的最大高度和右边柱子的最大高度,因为只有柱子高的时候…

        给定一个数组,代表柱子的高度

        求出下雨之后,能接的水有多少单位。我们将每一个柱子想象成一个水桶,看他能接多少水

        以这个水桶为例,他所能接的水取决于左边的柱子的最大高度和右边柱子的最大高度,因为只有柱子高的时候水才不会流出去,就比如红色的水桶他能接的水 = min(左边柱子最大高度,右边柱子最大高度) - 柱子的高度 = 1

        那么,求出了所有的水桶能接的水,求和就是我们的答案了,那么怎么能知道第i个柱子左右两侧柱子的最大值呢。这里我们需要借助两个数组,pre_max,suf_max,分别表示前缀最大值和后缀最大值,前置最大值等于 = max(pre_max[i-1],height[i]),suf_max同理。

        如下图:

        代码:

class Solution {
public://一个水桶能接的水取决于左边柱子的最大高度和右边柱子的最大高度,因为这样水才不会流出//前后缀分解//第i个宽度为1的桶可以接的水 = min(此处的前缀最大值,此处的后缀最大值) - height[i] int trap(vector<int>& height) {int n = height.size();int pre_max[n],suf_max[n];pre_max[0] = height[0];for (int i = 1;i < n;i++) {pre_max[i] = max(pre_max[i - 1],height[i]);}suf_max[n - 1] = height[n - 1];for (int i = n - 2;i >= 0;i--) {suf_max[i] = max(suf_max[i + 1],height[i]);}int ans = 0;for (int i = 0;i < n;i++) {ans += min(pre_max[i],suf_max[i]) - height[i];}return ans;}
};

时间复杂度:求pre_max和suf_max都是一次遍历,所以时间复杂度是O(n)的

空间复杂度:借助了两个数组,所以是O(n)的

        本题目时间复杂度已经最优了,那空间复杂度是否可以优化呢?注意到,如果我们求出了一个水桶的一部分前缀最大值和后缀最大值,此时前缀最大值小于后缀最大值,此时水桶的接水量就是前缀最大值-height[i],因为水是否会流出取决于较短的木板。这样我们用一个变量即可替代一个数组,将空间复杂度优化到了O(1)。

        具体代码:

class Solution {
public:int trap(vector<int>& height) {int n = height.size();int pre_max = 0,suf_max = 0;int left = 0, right = n - 1;int ans = 0;while (left <= right) {pre_max = max (pre_max,height[left]);suf_max = max (suf_max,height[right]);if (pre_max < suf_max) {ans += pre_max - height[left];left++;}else{ans += suf_max - height[right];right--;}}return ans;}
};

http://www.dtcms.com/wzjs/296067.html

相关文章:

  • 专业的咨询行业网站制作怎样免费制作网页
  • 珠海门户网站建设费用济南网站优化公司
  • 网站在百度搜不到建站推广网站
  • 玉环在哪里做网站西安seo技术培训班
  • 做淘宝代购翻译网站免费文案素材网站
  • 国外网站国内做二维码免费制作网页的网站
  • 国外做彩票网站违法吗公司网站与推广
  • 做网站就是做点击率shodan搜索引擎
  • 合肥做网站便宜关注公众号推广2元一个
  • 西宁最好网站建设公司哪家好百度浏览器手机版
  • 旅游网站建设方案书关键词排名查询
  • 网站建设banner图片关键词排名快照优化
  • 做3个网站需要多大的服务器北京seoqq群
  • 米 建设网站免费公司网站建站
  • 螺旋钢管网站建设网络营销个人感悟小结
  • 电脑制作网站总么做品牌营销策划包括哪些内容
  • 2019做网站需要营业执照吗宁波关键词优化排名工具
  • 汕头做网站网络营销总结
  • 一个备案号多个网站营销推广活动策划
  • 市住房和城乡建设局网站百度人气榜
  • 百度推广400客服电话长春seo结算
  • ztjs登录seo优化技术排名
  • 公众号开发哪家专业淘宝网站的推广与优化
  • 外贸选品搜索引擎优化管理实验报告
  • 网站内链规划q群排名优化软件
  • 网站开发作品营销软文500字范文
  • 企业网站 flash推广软文案例
  • 网站建设管理和维护baud百度一下
  • 福州做网站建设百度如何做广告
  • 怎么做网站的导航广告传媒公司主要做什么