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

石河子网站建设网站页面设计

石河子网站建设,网站页面设计,什么亲子网站可以做一下广告词,重庆专业做淘宝网站LeetCode 42. 接雨水 题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数…

LeetCode 42. 接雨水

题目描述

给定 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[下标]就可以获得下标处高度:

  1. height[栈顶下标]>height[当前下标]时,将当前下标压入栈中(此时是后面的高度<前面的高度);
  2. height[栈顶下标]==height[当前下标]时,弹出栈顶下标,压入当前下标,虽然不弹出就压入也不影响计算,但是因为相同高度没法存水,可以通过这个操作避免重复计算
  3. height[栈顶下标]<height[当前下标]时,就到了计算存水面积的时候了,这里需要不断弹出那些小的元素。那么,储水高度height=Math.min(height[栈顶下标的left],height[栈顶下标的right])-height[栈顶下标] ,就相当于把栈顶的高度作为底,左右围在一起形成一个容器。储水宽度width=栈顶下标的right-栈顶下标的left-1。最终面积sum+=h*w

代码

class Solution {public int trap(int[] height) {// 根据卡神单调栈版写的int size = height.length;if (size <= 2) return 0; // 接不到雨水直接returnStack<Integer> stack = new Stack<Integer>();stack.push(0);int sum = 0;for (int i = 1; i < height.length; i++) {int stackTop = stack.peek(); // 求栈顶元素,判断栈顶元素与当前元素的关系if (height[i] < height[stackTop]){ // 栈顶元素 > 当前元素的时候将当前元素压入栈中,继续求解stack.push(i);} else if (height[i] == height[stackTop]) { // 栈顶元素 == 当前元素// 相等的时候,弹出旧的入新的// 虽然直接压入栈中也可以,结果不受影响,但会导致重复的计算stack.pop();stack.push(i);} else {// 栈顶元素 < 当前元素// 单调栈处理,依次弹出那些小的元素(小的元素做不了接雨水的壁)int heightAtIndex = height[i];while (!stack.isEmpty() && heightAtIndex > height[stackTop]){int mid = stack.pop();if (!stack.isEmpty()){int left = stack.peek();int h = Math.min(height[left], heightAtIndex) - height[mid];int w = i - left - 1;sum += h * w;stackTop = stack.peek();}}stack.push(i);}}return sum;}
}
http://www.mnyf.cn/news/49996.html

相关文章:

  • 苏州正规做网站公司厦门seo服务
  • 沧州网站设计师招聘百度帐号申请注册
  • 图文可以做网站设计吗全球搜是什么公司
  • 哪个网站是专做宝宝饭的seo关键词排名优化app
  • wordpress主题 外贸网站模板湖南企业竞价优化
  • html做的网站图片横着摆放查权重
  • wordpress 关联宁波seo推广哪家好
  • 怎么建设分销模式手机网站恶意点击广告软件
  • 汕头 网站建设北京搜索优化推广公司
  • 我是做颗粒在什么网站上域名停靠网页推广大全
  • 太原企业网站模板建站淘宝搜索排名
  • 网站建设找单推广app平台有哪些
  • 建设局网站公示的规划意味着什么网上销售平台
  • 北京网站设计制作多少钱互联网广告精准营销
  • 南京淄博网站建设方案百度top风云榜
  • 做语音聊天网站要多少钱最好的bt磁力搜索引擎
  • 我的网站别人给黑链 攻击全媒体广告策划营销
  • 强的网站建设seo推广怎么样
  • 个人网站推广平台大全百度关键词搜索查询
  • 制作网站费怎么做会计科目账户竞价托管费用
  • 服装设计以及网页设计素材优化排名
  • php做的网站毕设会问的问题深圳海外推广
  • 中企动力设计的网站今日搜索排行榜
  • 男女同房做爰网站网上软文发稿平台
  • 网络营销做得好的产品广州网络seo公司
  • 雅虎做网站推广今天的新闻摘抄
  • 自己建设个人网站要花费多少百度网址大全旧版
  • 网站首页页面设计收录优美的图片
  • 如何在虚拟机里面做网站代理公司注册
  • unas做网站服务器免费二级域名注册申请