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

免费网站建设步骤东莞网站建设市场

免费网站建设步骤,东莞网站建设市场,山东大标网络,贵阳市做网站的公司题目要求 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 要求给出一列柱子,求该柱子能盛放多少雨水 解题思路: 这些柱子围城了一个“盆地”,雨水会积攒在低洼处&…

题目要求

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

        要求给出一列柱子,求该柱子能盛放多少雨水

解题思路:

        这些柱子围城了一个“盆地”,雨水会积攒在低洼处,我们要计算“盆地”能装多少水

        关键点:每个位置能接的雨水量,取决于它左右两边最高的柱子中较矮的那个(木桶效应)。

解题步骤分解

  1. 找到最高的柱子:
  • 这个柱子把整个区域分成左右两部分
    • 左边的水位由左边最高的柱子决定(从左到右遍历到的)
    • 右边的水位由右边最高的柱子决定(从右到左遍历到的)
  1. 计算左侧雨水:
    • 从左往右扫描,记录遇到的最高柱子
    • 当前水位就是这个最高柱子的高度
    • 每个柱子的积水量 = 当前水位 - 柱子高度
  1. 计算右侧雨水:
  • 从右往左扫描,记录遇到的最高柱子
    • 当前水位就是这个最高柱子的高度
    • 每个柱子的积水量 = 当前水位 - 柱子高度
  1. 汇总结果:
  • 把左边和右边的积水量加起来就是总雨水量

 

其实可以辅助图理解

关键就是我们只需要关注左/右侧最高柱子,因为它是木桶效应中的短板,决定能装多少水

假设这个是最高柱子的左侧,现在我们从1-6开始遍历

        1:高度为1,更新左边最高的柱子高度为1,并且计算累计雨水+=(最高柱子-当前柱子高度=0)

        2:高度为0,累计雨水+=(最高柱子-当前柱子高度=1)

        3:高度为2,更新左边最高柱子高度为1,累计雨水+0

        4:高度为1,累计雨水+=(最高柱子2-当前柱子高度1=1)

。。。。

右边也是同理的

java代码实现

class Solution {public int trap(int[] height) {// 1. 首先找到最高的柱子int maxHeight = 0;      // 记录最高柱子的高度int maxPos = -1;        // 记录最高柱子的位置int len = height.length; // 数组长度// 遍历数组,找出最高的柱子及其位置for(int i = 0; i < len; i++) {if(height[i] > maxHeight) {maxHeight = height[i]; // 更新最高高度maxPos = i;           // 更新最高柱子的位置}}// 如果所有柱子高度都为0,接不到雨水if(maxHeight == 0) {return 0;}int sum = 0;            // 总雨水量int waterHeight = 0;    // 当前水位高度// 2. 计算最高柱子左侧的雨水量// 从左往右遍历,水位由左侧最高柱子决定for(int i = 0; i < maxPos; i++) {// 如果当前柱子比之前的水位高,更新水位if(height[i] > waterHeight) {waterHeight = height[i];}// 当前柱子上方的雨水量 = 当前水位 - 当前柱子高度sum += waterHeight - height[i];}// 3. 计算最高柱子右侧的雨水量waterHeight = 0; // 重置水位// 从右往左遍历,水位由右侧最高柱子决定for(int i = len - 1; i > maxPos; i--) {// 如果当前柱子比之前的水位高,更新水位if(height[i] > waterHeight) {waterHeight = height[i];}// 当前柱子上方的雨水量 = 当前水位 - 当前柱子高度sum += waterHeight - height[i];}return sum; // 返回总雨水量}
}

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

相关文章:

  • 云南SEO网站建设杭州网站seo公司
  • 免费空间领取网站网络营销自学网站
  • 苏州网站建设行业网站建站设计
  • 大连网站在哪备案站长之家查询
  • 网站的ftp服务器小红书推广费用一般多少
  • 外贸网站建站多少钱b站推广网站2024下载
  • 青锐成长计划网站开发人员北京搜索排名优化
  • 北京自考网官方网站公司网站的推广
  • 免费的网站域名seo类目链接优化
  • 电子商务网站按其实现的技术可分为恢复正常百度
  • 聊城企业做网站2023第二波疫情已经到来
  • 如何做DJ网站整站seo排名
  • 昆明cms建站模板杭州网络
  • 上海闵行做网站的公司网站推广策划方案
  • wordpress如何设置目录权限设置用广州seo推广获精准访问量
  • 昆明网站建设介绍安徽360优化
  • 重庆建筑工程安全施工管理安全网河南新站关键词排名优化外包
  • 深圳最好的网站开发公司电话网络推广都有哪些平台
  • 日本dns地址推荐seog
  • 电商网站制作教程域名检测查询
  • 河北中瑞建设集团有限公司网站品牌推广软文200字
  • 在哪个网站可以搜画画做品百度联盟官网登录入口
  • 做网站怎么推广收益大网址大全123
  • 小程序商城图标素材58同城关键词怎么优化
  • 导购网站怎么做有特色百度指数数据来源
  • web是网站设计和建设吗佛山百度推广电话
  • 温州谷歌seo潍坊seo关键词排名
  • えっちな秘密基地视频深圳seo优化方案
  • webydo生成的网站能下载代码吗全球网站流量排名查询
  • 做时时彩网站微信百度seo价格查询