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

门户网站建设实施方案北京seo代理计费

门户网站建设实施方案,北京seo代理计费,linux系统中wordpress,网站不续费这是一道 困难 题 题目来自: https://leetcode.cn/problems/trapping-rain-water/ 题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,…

这是一道 困难 题

题目来自: https://leetcode.cn/problems/trapping-rain-water/

题目

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

示例 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 个单位的雨水(蓝色部分表示雨水)。 

示例 2:

输入:height = [4,2,0,3,2,5] 
输出:9 

提示:

  • n==height.lengthn == height.lengthn==height.length
  • 1<=n<=2∗1041 <= n <= 2 * 10^41<=n<=2104
  • 0<=height[i]<=1050 <= height[i] <= 10^50<=height[i]<=105

解题思路

使用单调栈的思路,假如给定的每个柱子是逐个变矮的,那么可以接的雨水就是0

如果这时候突然来了一个变高的柱子 4 ,那么这个柱子就会使得当前柱状图可以接雨水了。

如上图所示:

  1. 先将栈顶的柱子取出(柱子3),使用(其左边柱子的高度和新增柱子高度的最小值 - 其本身高度)* 其宽度,得出当前柱子的接水量,累加到答案中。(注意:如果栈中目前只有一个柱子的话,其左边高度设为0,即不可以接水。)
  2. 这时如果新的栈顶柱子(柱子2)依然比新增的柱子矮,继续取出栈顶柱子并计算其接水量,注意这是宽度应该是柱子3的宽度 + 柱子2的宽度。
  3. 这时栈顶柱子1的高度 大于 新增的柱子4 的高度,柱子4入栈,注意:这时柱子4的宽度 = 柱子2 + 柱子3 + 柱子4 的总宽度,即前面所有出栈的柱子的宽度都需要保留下来,因为如果再来一个第5个柱子的高度 > 柱子4的高度的话,前面那么宽度还是有用的。

代码实现

Java 代码实现

class Solution {private Deque<int[]> stack = new LinkedList<>();public int trap(int[] height) {int n = height.length ;if(n <= 1){return 0;}int ans = 0;for(int h : height){int w = 0;while(!stack.isEmpty() && h > stack.peek()[1]){int[] top = stack.pop();w += top[0];if(!stack.isEmpty()){ans += w * (Math.min(stack.peek()[1], h) - top[1]);}}stack.push(new int[]{w + 1, h});}return ans;}
}

Go 代码实现

func trap(height []int) int {n := len(height)if n <= 1 {return 0}stack := [][]int{}ans := 0for _, h := range height {if len(stack) == 0 {stack = append(stack, []int{1, h})continue}w := 0for len(stack) > 0 && h > stack[len(stack) - 1][1] {top := stack[len(stack) - 1]stack = stack[:len(stack) - 1]w += top[0]if len(stack) > 0 {ans += w * (min(stack[len(stack) - 1][1], h) - top[1])}}stack = append(stack, []int{w + 1, h})}return ans
}func min(a int, b int) int {if a > b {return b}return a
}

复杂度分析

时间复杂度:O(n)O(n)O(n)

空间复杂度:O(n)O(n)O(n)

http://www.hengruixuexiao.com/news/28558.html

相关文章:

  • 网站页面大小优化怎么做chatgpt 网址
  • b2c网站建设的手机百度下载app
  • dz论坛怎么做视频网站吗最基本的网站设计
  • 怎么申请一个商城网站.深圳营销型网站定制
  • no.7 wordpress个北京网站优化推广公司
  • 便宜的手机网站建设地推接单网
  • 网站开发关联下拉列表百度搜索引擎优化公司哪家强
  • 高校网站建设制度上海seo网站策划
  • 常州营销网站建设磁力下载
  • 香港服务器做盈利网站百度有哪些产品
  • 网站需要建手机版的吗sem竞价推广是什么意思
  • 做视频导航网站有哪些国家免费培训机构
  • 网站客户端ip做爬虫网站关键字优化软件
  • 私人网络服务器广州seo站内优化
  • 网站下载app免费安全seo软件优化工具软件
  • 合肥哪家做网站网络宣传推广方案范文
  • 出国游做的好的网站百度手机提高关键词排名
  • 网站开发项目费用预算seo关键词推广公司
  • 怎样查看别人的网站是怎么建设哪些行业适合做网络推广
  • 百度网盟推广是什么百度seo优化是做什么的
  • 武汉手机网站建设信息微营销平台
  • 网站开发网站开发线上卖护肤品营销方法
  • 厦门市网站建设app开发百度知道个人中心
  • 昆明网站建设首选公司网络软文推广案例
  • wordpress 整站ssl百度一下官方网页版
  • 杭州便宜的手机网站建设牡丹江seo
  • 网站开发的背景郑州网络推广专业公司
  • 网站首页被k还有救吗合肥seo按天收费
  • 河北省城乡住房和城乡建设厅网站网络广告策划案
  • 网站建设和管理的总结怎么写最近新闻热点