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

中国摄影网官网首页seo优化工具有哪些

中国摄影网官网首页,seo优化工具有哪些,网站建设公司讯息,免费下载网站模版接雨水问题 问题背景 LeetCode 42. 接雨水 接雨水问题是一个经典的计算雨水滞留量的问题,通常使用柱状图来表示不同高度的柱子。在下雨的情况下,柱子之间的凹陷部分能够存储雨水,问题的目标是计算这些柱子所能接收的雨水总量。 相关知识 …

接雨水问题

问题背景

LeetCode 42. 接雨水
接雨水问题是一个经典的计算雨水滞留量的问题,通常使用柱状图来表示不同高度的柱子。在下雨的情况下,柱子之间的凹陷部分能够存储雨水,问题的目标是计算这些柱子所能接收的雨水总量。

相关知识

在解决接雨水问题之前,需要了解以下几个关键概念:

  • 柱状图:表示不同高度的柱子,通常由一个整数数组表示,每个元素代表柱子的高度。
  • 雨水滞留:在柱状图中,两根柱子之间的凹陷部分可以存储雨水,我们需要计算这些凹陷部分的总容量。

问题介绍

给定一个由非负整数表示的柱状图,每个柱子的宽度为 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

解题思路

接雨水问题的解决思路通常使用双指针法。具体步骤如下:

  1. 初始化左指针 left 和右指针 right,并初始化左侧最大高度 leftMax 和右侧最大高度 rightMax 为 0。
  2. 使用 leftright 指针从两端向中间遍历柱子,每次比较 leftright 指针所指的柱子高度,并更新左侧最大高度 leftMax 和右侧最大高度 rightMax
  3. 如果 height[left] < height[right],说明左侧的最大高度决定了当前位置能接收的雨水高度,计算并累加雨水量,然后将 left 指针向右移动一位;否则,右侧的最大高度决定了雨水高度,计算并累加雨水量,然后将 right 指针向左移动一位。
  4. 重复步骤 2 和步骤 3,直到 leftright 指针相遇。

最终,累加的雨水量即为所求的雨水滞留量。

代码实现

class Solution:def trap(self, height: List[int]) -> int:# 初始化结果为0res = 0# 初始化左指针left和右指针rightleft, right = 0, len(height) - 1# 初始化左侧最大高度leftMax和右侧最大高度rightMaxleftMax = rightMax = 0# 当左指针小于右指针时,继续循环while left < right:# 更新左侧最大高度leftMaxleftMax = max(leftMax, height[left])# 更新右侧最大高度rightMaxrightMax = max(rightMax, height[right])# 如果左侧当前高度小于右侧当前高度if height[left] < height[right]:# 计算当前位置能接的雨水量并累加到结果中res += leftMax - height[left]# 移动左指针向右移动一位left += 1else:# 否则,计算当前位置能接的雨水量并累加到结果中res += rightMax - height[right]# 移动右指针向左移动一位right -= 1# 返回最终结果return res

上述 Python 代码实现了双指针法的思路。首先,我们初始化左指针 left 和右指针 right,以及左侧最大高度 leftMax 和右侧最大高度 rightMax。然后,使用指针从两端向中间遍历柱子,计算并累加雨水量。最后,返回累加的雨水量作为结果。

时间和空间复杂度

  • 时间复杂度:双指针法的时间复杂度为 O(n),其中 n 是柱子的数量。
  • 空间复杂度:双指针法只需要常数级别的额外空间,空间复杂度为 O(1)。

结论

接雨水问题是一个经典的算法问题,通过双指针法,我们可以高效地计算雨水滞留量。

http://www.15wanjia.com/news/42200.html

相关文章:

  • 购卡链接网站怎么做怎么自己开发网站
  • 有哪些做简历的好网站网络广告人社区官网
  • 墙绘做网站推广有作用没百度官网电话客服24小时
  • 云梦网络做网站十大管理培训课程
  • oa网站建设关键时刻
  • 做公司网站解析福州搜索引擎优化公司
  • 珠宝类企业网站(手机端)百度推广费用怎么算
  • 襄阳做网站公司品牌seo培训
  • 武汉做网站jw100八百客crm登录入口
  • 无锡网站建设咨询成全高清免费观看mv
  • 网站建设需要的文案外贸网站都有哪些
  • 有找专业做淘宝网站的美工怎么自己注册网站平台了
  • 网站开发的技术意义如何弄一个自己的网站
  • 顺德做网站shundeitb2b电子商务平台有哪些
  • 网站建设案例典型企业案例网络营销应用方式
  • 消防做设计有什么网站网站发布与推广
  • 学会网站建设网站优化外包多少钱
  • 东莞企业营销型网站建设全网营销与seo
  • wordpress ajax 评论翻页如何进行网站性能优化?
  • 红色色系做网站的配色广告营销
  • 营销型网站建设搭建方法网站推广怎样做
  • 0基础学习网站建设免费seo关键词优化方案
  • wordpress文章转移关键词分布中对seo有危害的
  • 昆明网站建设哪家比较好主流网站关键词排名
  • 南京网站设计公司大全2023北京封控了
  • 建设银行网站怎么查工资明细沈阳seo排名收费
  • 恶意刷网站什么叫友情链接
  • 素材网站上的元素是怎么做的武汉seo建站
  • 宁波网站建设工作室注册网址
  • web网站开发实训总结泰安seo培训