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

淘宝客优惠券网站建设加盟官网重庆市两江新区建设管理局网站

淘宝客优惠券网站建设加盟官网,重庆市两江新区建设管理局网站,wordpress内核源码,企业信息化管理平台引言 接雨水问题是一个经典的算法问题,它要求我们计算给定一组不同高度的墙壁时,这些墙壁之间能够蓄积多少雨水。解决这个问题的方法有很多,其中一种常见的解法是通过辅助数组来记录每个位置的左右最大高度,并计算每个位置上方能…

引言

接雨水问题是一个经典的算法问题,它要求我们计算给定一组不同高度的墙壁时,这些墙壁之间能够蓄积多少雨水。解决这个问题的方法有很多,其中一种常见的解法是通过辅助数组来记录每个位置的左右最大高度,并计算每个位置上方能够蓄积的雨水量。

问题描述

假设我们有一个非负整数数组height,其中每个元素表示墙壁的高度。我们需要计算这些墙壁之间能够蓄积多少雨水。

题目链接:. - 力扣(LeetCode)

思路:辅助数组法

接下来,我们将介绍一种解决接雨水问题的常见方法,即通过辅助数组来记录每个位置的左右最大高度,并计算每个位置上方能够蓄积的雨水量。

python代码

class Solution:def trap(self, height: List[int]) -> int:# left, right 分别存储一点左,右边最高墙壁left=[]right=[]#ans为返回值ans=0lmax, rmax=0,0left.append(0)for i in range(1,len(height)):lmax=max(lmax, height[i-1])left.append(lmax)right.append(0)for i in range(len(height)-2, -1, -1):rmax=max(rmax, height[i+1])right.append(rmax)right=right[::-1]print(f"left={left}")print(f"righ={right}")for i in range(len(height)):ans+=max(0, min(left[i], right[i])-height[i])return ans

详细步骤解释:

  1. 我们首先创建了两个辅助数组leftright,用于分别存储每个位置的左侧和右侧最大高度。
  2. 然后我们通过遍历数组,计算每个位置的左侧最大高度,并将结果存入left数组中。
  3. 接着,我们通过逆序遍历数组,计算每个位置的右侧最大高度,并将结果存入right数组中。
  4. right数组进行反转,以便与left数组对应位置进行比较。
  5. 最后,我们再次遍历数组,计算每个位置上方能够蓄积的雨水量,并累加到变量ans中。
  6. 最终,我们返回计算得到的雨水总量ans作为结果。

示例与分析: 假设我们有一个高度数组[0,1,0,2,1,0,1,3,2,1,2,1],使用上述算法进行计算可以得到结果为6。具体的计算过程如下:

height=[0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1]
left = [0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3] 
right = [3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 1, 0] 
#计算每个位置上方能够蓄积的雨水量: 
[0, 0, 1, 0, 1, 2, 1, 0, 1, 0, 0, 0]

从示例中可以看出,计算得到的雨水总量为6,即该数组表示的墙壁之间能够蓄积的雨水量。

复杂度分析:

  • 时间复杂度:该算法需要遍历两次输入数组,分别计算左右最大高度,以及遍历一次数组计算每个位置上方的雨水量。因此,时间复杂度为O(n),其中n是输入数组的长度。
  • 空间复杂度:该算法使用了两个额外的辅助数组leftright,它们的长度与输入数组相同。因此,空间复杂度为O(n)。

结论: 通过辅助数组法,我们可以有效地解决接雨水问题。该方法利用了辅助数组存储每个位置的左右最大高度,并通过遍历数组计算每个位置上方能够蓄积的雨水量。这种方法简单、直观,并且具有较好的时间复杂度和空间复杂度。

展望: 除了辅助数组法之外,还有其他解决接雨水问题的方法。例如,可以使用双指针法、栈等数据结构来解决该问题。在未来的研究和实践中,我们可以进一步探究这些方法,并比较它们的优缺点,以寻找更加高效的解决方案。

详细题解:. - 力扣(LeetCode)


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

相关文章:

  • 网站定制公司哪家好网站建设哪家技术好
  • iis7发布php网站wordpress 自学网
  • 制作哪个网站好北京金山办公软件股份有限公司官网
  • 手机网站建设的方法做调查问卷换赏金的网站
  • wordpress拿站网站建设怎么建好
  • 网站优化基础设计公司网站需要多少钱
  • 网站建设与管理 需求分析义乌营销型网站建设
  • 做漫画的网站有哪些公司的门户网站模版
  • 建设官方网站需要注意什么搜索引擎优化排名技巧
  • 电子商务网站建设需要什么网站价值评估怎么做
  • 整站seo定制wordpress页面发布不
  • 怎样解析网站域名有哪些好的做兼职的网站
  • 上海贸易网站建设茗匠智能门店管理系统
  • 网站开发分类wordpress 全部函数
  • 动漫做h免费网站发布设计任务的网站
  • 网站备案怎样提交管局ps网页排版设计
  • 国外的自建网站怎么做化妆品网站建设原因
  • 宝塔服务器搭建网站教程贵州省住房和城乡建设厅网站报名网
  • 南阳网站推广优化公司哪家好电脑个人网站怎么做
  • 济南php网站开发成都网站建设推广港哥熊掌号
  • 免费建设网站赚钱百度指数指的是什么
  • 南昌市建设工程质量监督网站顺义做网站的厂家
  • 北京互联网公司开发的网站讨债公司 做网站
  • 网站建设费用主要包括那几项天津市住房与城乡建设厅网站
  • 如何做简单网站国外优秀画册设计网站
  • 最优秀的无锡网站建设企业家网站建设
  • 学网站开发去哪学移动微网站
  • dedecms导入网站模板下载短信营销哪个平台好
  • 自己怎么做网站赚钱做婚礼邀请函网站
  • asp个人网站怎么建设手机网站 微信链接