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

惠州城乡和住房建设局网站百度网页版入口页

惠州城乡和住房建设局网站,百度网页版入口页,深圳物流网站建设,昆明网架公司题目 给定 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] 表…

题目

给定 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

答案

这个问题可以通过动态规划来解决。我们可以定义一个dp数组,dp[i]表示从第0个柱子到第i个柱子所能接到的最大雨水量。对于每个柱子,如果它比前一个柱子高,那么它上面的雨水量就是它自身的高度,否则就是0。因此,我们可以得到状态转移方程:

dp[i] = max(dp[i-1], height[i])

其中dp[i-1]表示不接第i个柱子上的雨水量,height[i]表示接第i个柱子上的雨水量。最后,dp数组中的最大值就是所能接到的最大雨水量。

以下是Python代码实现:

def trap(height):if not height:return 0n = len(height)dp = [0] * ndp[0] = height[0]left, right = 0, 0ans = 0while right < n:# 从左往右扫描while right < n and dp[right] < dp[left]:dp[right] += height[right]right += 1# 如果dp[left] < dp[right],则更新left为right的左边一个位置if dp[left] < dp[right]:left = right - 1# 更新最大雨水量ans = max(ans, dp[right])return ans

在这个代码中,我们使用了一个dp数组来存储每个位置所能接到的最大雨水量。left和right分别表示扫描的左右边界,ans表示目前为止所能接到的最大雨水量。在每个位置,如果dp[left] < dp[right],则说明我们可以将雨水接到右边的柱子上,因此需要更新left为right的左边一个位置。最后,返回ans即可。

http://www.yayakq.cn/news/930553/

相关文章:

  • server 2012 做网站咋做网站
  • 涿州城乡建设局网站网站模板之家免费模板
  • 快速提升网站排名广州推广系统
  • 西安门户网站开发哈尔滨网站备案
  • 现在清算组备案在哪个网站做网站建设市场调研
  • 北京网站维护一般价格多少cloudflare注册域名
  • 榆次做网站ps做网站首页导航栏
  • 上海建站宝盒门户网站开发需求文档
  • 产品销售型的网站招生网站模版
  • 所谓做网站就这么几步电商网站平台有哪些
  • 长沙望城建设局网站湖南做网站kaodezhu
  • 微信官方网站登陆怎么建设像天猫的网站
  • 做毕设网站多少钱怎样推广平台
  • 徐州城乡建设网站网站优化工作
  • 弹性盒子做自适应网站织梦网站做视频
  • 三沙网站建设wordpress后台菜单加入页面
  • 企业网站代维护精简wordpress博客程序
  • 陕西网站开发公司地址上海哪里网站备案
  • 卖东西的网站怎么做网站建设佛
  • 白银市住房与建设局网站wordpress建站很麻烦
  • 手机网站建设流程 知乎南沙区做网站公司
  • 山东营销网站建设联系方式互联网营销渠道
  • 网站建设面试题wordpress 登录空白页
  • 张家口网站建设公司爱做的小说网站
  • 新闻列表做的最好的网站个体工商户备案网站备案
  • 建设网站要用到什么语言网站开发课程有哪些
  • 网站输入一级域名自动跳转二级域名上虞做网站公司
  • 网站帮助文档怎么写中国工程建设信息网官网查询
  • 重庆网站制作机构企业培训考试系统
  • 只做百度移动端网站可以吗电商网站开发的项目描述