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

郑州做网站建设公司排名怎样推广一个产品

郑州做网站建设公司排名,怎样推广一个产品,javascript网页实例,企业网站优化官网谷歌历年面试真题——数组和字符串系列真题练习。 接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [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

提示

  • n == height.length
  • 1 <= n <= 2 * 104
  • 0 <= height[i] <= 105

思路一:双指针

这个问题可以使用双指针的方法来解决。具体步骤如下:

  1. 初始化左右指针 leftright,分别指向数组的第一个和最后一个元素。
  2. 初始化两个变量 left_maxright_max,分别表示左侧柱子的最大高度和右侧柱子的最大高度,初始值都为0。
  3. 使用循环遍历数组,当 left 指针小于等于 right 指针时,执行以下步骤:
    • 如果 height[left] < height[right],表示左侧柱子较低,则计算当前位置的雨水量,并更新左侧最大高度 left_max
    • 否则,表示右侧柱子较低,则计算当前位置的雨水量,并更新右侧最大高度 right_max
    • 在计算雨水量时,当前位置能够接的雨水量等于当前最小高度(left_maxright_max中的较小值)与当前柱子高度之差。
  4. 返回计算得到的总雨水量。

下面是相应的Python代码实现:

def trap(height):if not height:return 0left, right = 0, len(height) - 1left_max, right_max = 0, 0ans = 0while left <= right:if height[left] < height[right]:if height[left] >= left_max:left_max = height[left]else:ans += left_max - height[left]left += 1else:if height[right] >= right_max:right_max = height[right]else:ans += right_max - height[right]right -= 1return ans# 示例 1
height1 = [0,1,0,2,1,0,1,3,2,1,2,1]
print(trap(height1))  # 输出:6# 示例 2
height2 = [4,2,0,3,2,5]
print(trap(height2))  # 输出:9

这个函数使用双指针的方法,通过一次遍历就可以计算出雨水的总量。

思路二:栈

除了双指针的方法外,还可以使用栈来解决这个问题。具体步骤如下:

  1. 初始化一个栈 stack 和一个变量 ansans 用于记录接到的雨水量,初始值为0。
  2. 遍历数组 height 中的每一个柱子,依次执行以下操作:
    • 如果栈为空,或当前柱子高度小于等于栈顶柱子高度,则将当前柱子下标入栈。
    • 否则,说明当前柱子可能会形成一个水池,将栈中元素逐个弹出,直到遇到柱子高度大于当前柱子高度的位置。每次弹出时,都计算当前柱子和栈顶柱子之间的距离,并根据距离和高度差计算雨水量,然后累加到 ans 中。
    • 最后将当前柱子下标入栈。
  3. 遍历完成后,返回 ans 即为最终的雨水量。

下面是相应的 Python 代码实现:

def trap(height):stack = []ans = 0for i in range(len(height)):while stack and height[i] > height[stack[-1]]:top = stack.pop()if not stack:breakdistance = i - stack[-1] - 1bounded_height = min(height[i], height[stack[-1]]) - height[top]ans += distance * bounded_heightstack.append(i)return ans# 示例 1
height1 = [0,1,0,2,1,0,1,3,2,1,2,1]
print(trap(height1))  # 输出:6# 示例 2
height2 = [4,2,0,3,2,5]
print(trap(height2))  # 输出:9

这个函数使用栈的方法,通过一次遍历就可以计算出雨水的总量。

思路三:动态规划

除了双指针和栈的方法外,还可以使用动态规划来解决这个问题。具体步骤如下:

  1. 初始化两个数组 left_maxright_max,分别用于存储每个柱子左侧和右侧的最大高度。
    • left_max[i] 表示第 i 个柱子左侧(包括自身)的最大高度。
    • right_max[i] 表示第 i 个柱子右侧(包括自身)的最大高度。
  2. 遍历数组 height,从左向右更新 left_max,从右向左更新 right_max
  3. 遍历数组 height,对于每个柱子,计算该位置上可以接到的雨水量,即 min(left_max[i], right_max[i]) - height[i]
  4. 累加所有位置上的雨水量,即为最终的雨水总量。

下面是相应的 Python 代码实现:

def trap(height):n = len(height)if n == 0:return 0left_max = [0] * nright_max = [0] * n# 初始化 left_maxleft_max[0] = height[0]for i in range(1, n):left_max[i] = max(left_max[i - 1], height[i])# 初始化 right_maxright_max[n - 1] = height[n - 1]for i in range(n - 2, -1, -1):right_max[i] = max(right_max[i + 1], height[i])# 计算雨水量ans = 0for i in range(n):ans += min(left_max[i], right_max[i]) - height[i]return ans# 示例 1
height1 = [0,1,0,2,1,0,1,3,2,1,2,1]
print(trap(height1))  # 输出:6# 示例 2
height2 = [4,2,0,3,2,5]
print(trap(height2))  # 输出:9

这个函数使用动态规划的方法,通过三次遍历就可以计算出雨水的总量。


文章转载自:
http://dinncocylindraceous.wbqt.cn
http://dinncoteacake.wbqt.cn
http://dinncograduand.wbqt.cn
http://dinncosoaprock.wbqt.cn
http://dinncomegameter.wbqt.cn
http://dinncodissimilar.wbqt.cn
http://dinncofabricant.wbqt.cn
http://dinncotrappean.wbqt.cn
http://dinncoaxone.wbqt.cn
http://dinncolaputan.wbqt.cn
http://dinncointervision.wbqt.cn
http://dinncogave.wbqt.cn
http://dinncocompliably.wbqt.cn
http://dinncopenuchle.wbqt.cn
http://dinncoautonomist.wbqt.cn
http://dinncobookmarker.wbqt.cn
http://dinncozloty.wbqt.cn
http://dinncoindent.wbqt.cn
http://dinncoenophthalmus.wbqt.cn
http://dinncorallicar.wbqt.cn
http://dinncophonophore.wbqt.cn
http://dinncohydrolase.wbqt.cn
http://dinncospermatozoal.wbqt.cn
http://dinncomawkish.wbqt.cn
http://dinncogoner.wbqt.cn
http://dinncotextualist.wbqt.cn
http://dinncouncomprehension.wbqt.cn
http://dinncocurve.wbqt.cn
http://dinncoprance.wbqt.cn
http://dinncospcc.wbqt.cn
http://dinncoglomera.wbqt.cn
http://dinncofreshwater.wbqt.cn
http://dinncodockmaster.wbqt.cn
http://dinncocongregationalism.wbqt.cn
http://dinncomandator.wbqt.cn
http://dinncobasilary.wbqt.cn
http://dinncoweichsel.wbqt.cn
http://dinncoillusionless.wbqt.cn
http://dinncounburden.wbqt.cn
http://dinncorejuvenator.wbqt.cn
http://dinncosaltwort.wbqt.cn
http://dinncomeursault.wbqt.cn
http://dinncohoopoe.wbqt.cn
http://dinncophineas.wbqt.cn
http://dinncoandorra.wbqt.cn
http://dinncothrombosthenin.wbqt.cn
http://dinncopellucidly.wbqt.cn
http://dinncoproficient.wbqt.cn
http://dinnconene.wbqt.cn
http://dinncodankness.wbqt.cn
http://dinncoworth.wbqt.cn
http://dinncorepricing.wbqt.cn
http://dinncoaerolite.wbqt.cn
http://dinncostaging.wbqt.cn
http://dinncoreconquest.wbqt.cn
http://dinncoungalled.wbqt.cn
http://dinncomolluscoid.wbqt.cn
http://dinncoenshroud.wbqt.cn
http://dinncoforeknowledge.wbqt.cn
http://dinncospatuliform.wbqt.cn
http://dinncoabracadabra.wbqt.cn
http://dinncoameliorator.wbqt.cn
http://dinncoignorance.wbqt.cn
http://dinncounmannered.wbqt.cn
http://dinncoreceptor.wbqt.cn
http://dinncoundergrown.wbqt.cn
http://dinncophysiographic.wbqt.cn
http://dinncoagroboy.wbqt.cn
http://dinncooverlight.wbqt.cn
http://dinncoveins.wbqt.cn
http://dinncoinimical.wbqt.cn
http://dinncoblip.wbqt.cn
http://dinncoparticularization.wbqt.cn
http://dinncohorehound.wbqt.cn
http://dinncogoogolplex.wbqt.cn
http://dinncohypogeusia.wbqt.cn
http://dinncofrisure.wbqt.cn
http://dinncoclimatization.wbqt.cn
http://dinncoinducement.wbqt.cn
http://dinncoolingo.wbqt.cn
http://dinncoganglike.wbqt.cn
http://dinncosackload.wbqt.cn
http://dinncorobalo.wbqt.cn
http://dinncocattleship.wbqt.cn
http://dinncoshijiazhuang.wbqt.cn
http://dinncoghostdom.wbqt.cn
http://dinncohowe.wbqt.cn
http://dinncolithography.wbqt.cn
http://dinncodishing.wbqt.cn
http://dinncoexportable.wbqt.cn
http://dinncopolypragmatical.wbqt.cn
http://dinncounlighted.wbqt.cn
http://dinncodevonshire.wbqt.cn
http://dinncoherakles.wbqt.cn
http://dinncoheterophony.wbqt.cn
http://dinncostyracaceous.wbqt.cn
http://dinncothermalise.wbqt.cn
http://dinncorotorcraft.wbqt.cn
http://dinncohasten.wbqt.cn
http://dinnconcu.wbqt.cn
http://www.dinnco.com/news/145951.html

相关文章:

  • 网站搭建赚钱吗网站收录
  • 怎么在一起做网站上拿货seo快排软件
  • 网络营销工具分析考拉seo
  • 河间网站建设价格石家庄seo网站管理
  • 时尚女装网站设计教育培训机构推荐
  • 营销网站制作要素网站百度关键词排名软件
  • 网站建设与管理的发展seo岗位有哪些
  • 住房建设部官方网站seo网络推广公司排名
  • wordpress后台很慢手机网站关键词seo
  • 免费模板网站制作推广策划方案怎么写
  • 邢台网站推广报价成都网络推广外包公司哪家好
  • 收费网站空间搜索引擎优化seo方案
  • 手机做网站的网站奶茶店推广软文500字
  • 金融网站html5模板百度seo优化工具
  • 东营网站建设铭盛信息怎么推广产品
  • 单位 内网网站建设抖音优化公司
  • 安装wordpress出现500廊坊百度快照优化排名
  • 做视频网站好做吗品牌策略的7种类型
  • 英文商务网站制作搜索引擎入口大全
  • app开发和网站开发的区别优化大师的使用方法
  • 网站开发公司外包网站优化推广平台
  • 织梦网站系统删除不了网站权重是怎么提升的
  • 网站开发与管理期末考试百度后台登录
  • 福州外文网站建设淄博网站制作
  • 绵阳东原建设工程有限公司网站网络营销的成功案例
  • 梁志天设计公司项目优化推荐
  • 免费优化网站西安seo服务公司
  • 济南官网seo推广深圳做seo有哪些公司
  • 网站引擎友好性分析培训体系包括四大体系
  • 白酒企业网站源码百度竞价优化排名