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

注册网站送金币邯郸市民网

注册网站送金币,邯郸市民网,东莞寮步网,兰州做网站价格接雨水 方法一思路测试代码复杂度测试结果 方法二思路测试代码复杂度测试结果 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图#xff0c;计算按此排列的柱子#xff0c;下雨之后能接多少雨水。 示例1#xff1a; 输入#xff1a;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方法一 思路 我们需要维护一个到当前的前缀最大数组当前元素的前缀最大的数字和一个到当前的后缀最大数组当前元素的后缀最大的数字。 当我们遍历到当前元素的时候选出前缀和后缀二者中小的那个减去高度即可得到当前元素的接住的雨水量. 比如相对于这个 height [0,1,0,2,1,0,1,3,2,1,2,1]高度图 前缀最大数组是 :pre_max:[0,1,1,2,2,2,2,3,3,3,3,3]; 后缀最大数组是: sub_max:[3,3,3,3,3,3,3,3,2,2,2,1]; 把遍历到的每一个元素当成一个宽度为1的水桶他的高就是与其索引一样的前缀最大数组和后缀最大数组中的最小的一个。 测试代码 class Solution{public int trap(int[] height) {int ans0;int nheight.length;//数组前缀最大值int pre_max[]new int[n];pre_max[0]height[0];//后缀最大值数组int sub_max[]new int[n];sub_max[n-1]height[n-1];for (int i 1; i n; i) {pre_max[i]Math.max(height[i],pre_max[i-1]);}for (int i n-2; i 0; i--) {sub_max[i]Math.max(height[i],sub_max[i1]);}for (int i 0; i n; i) {ansMath.min(pre_max[i],sub_max[i])-height[i];}return ans;} }复杂度 时间复杂度是O(n),n是数组的长度因为只有三个单层for循环。 空间复杂度是O(n),创建了两个为长度为n的数组。 测试结果 方法二 思路 我们可以定义两个变量来维护相对于当前元素的前缀最大值和后缀最大值。 比如这个时候当我们遍历到红色的框框时候前缀最大值是2后缀最大值是3那么它形成的宽为1木桶水桶高选择的是前缀和后缀小的那个(因为水桶的高度只能选择较小的不选择大的会溢出去)然后减去高就可以得到当前元素的接雨水的量。 测试代码 class Solution {public int trap(int[] height) {//答案和int ans0;//前缀最大值int pre_max0;//后缀最大值int sub_max0;int i0,jheight.length-1;while (ij){//更新前缀最大值pre_maxMath.max(pre_max,height[i]);//更新后缀最大值sub_maxMath.max(sub_max,height[j]);if (pre_maxsub_max){//前缀较小更新答案anspre_max-height[i];i;}else {//后缀较小或者等于情况更新答案anssub_max-height[j];j--;}}return ans;} }复杂度 时间复杂度是O(n) 空间复杂度是:O(1) 测试结果
http://www.w-s-a.com/news/492655/

相关文章:

  • 1m带宽做网站怎么样深圳网站建设制作开发公司
  • 网站建设 服务内容 费用郴州网站建设公司哪里有
  • 网站关键词重要性育才网站建设
  • 网络安全形势下怎么建设学校网站wordpress最新主题下载
  • 自己建设网站需要什么条件.gs域名做网站怎么样
  • 网上做公益的网站推广手机卡返佣平台
  • 网站是公司域名是个人可以南京建设银行官方网站
  • 做互联网网站的会抓百度网盟推广 网站
  • 商务网站开发设计结论微信报名小程序怎么制作
  • 网站建设销售简历wordpress七比2
  • 制作网站报价工程项目查询哪个网站
  • 深圳移动网站建设制作公司网站建设的认识
  • 网站建设脚本语言有哪些想开网店哪个平台好
  • 视频网站用什么做的好深圳的小程序开发公司
  • 南京网站定制开发商城网站免费模板
  • 青海学会网站建设公司照片组合拼图
  • 中国建设银行福清分行网站爱站网权重查询
  • 外贸通网站建设网站建设7个主要流程图
  • 元气森林网络营销方式医疗网站优化怎么做
  • 手机网站制作报价表做网站公司做网站公司
  • 湖州网站设计吉林网站建设哪家好
  • 做存储各种环境信息的网站使用tag的网站
  • 阿里云用ip做网站网站开发员属于
  • 外链网盘下载南宁seo推广优化
  • 网站的推广方案有哪些此网站可能有
  • wordpress更改链接后网站打不开一键生成个人网站
  • 网站建设后台有哪些东西前端开发培训一般多少钱
  • 高端建设网站公司网站开发 源码
  • 企业网站的劣势园林景观设计公司简介范文
  • 网站建设程序招聘东营建设信息网登录