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

手撕算法-接雨水

描述

image.png

分析

i位置能积累的雨水量,等于其左右两边最大高度的最小值。
为了能获取i位置左右两边的最大高度。使用动态规划。
两个dp数组:

  • leftMax
  • rightMax

其中

  • leftMax[i] 代表i位置左边的最大高度
  • rightMax[i] 代表i位置右边的最大高度

初始状态:

  • leftMax[0] = 0;
  • rightMax[0] =0;

填充这两个dp数组。

那么i位置最终能存的雨水量为:min(eftMax[i] , rightMax[i]) - height[i]

遍历所有位置,即可得到总共能接的雨水数。

image.png

代码

class Solution {public int trap(int[] height) {int n = height.length;int[] leftMax = new int[n];int[] rightMax = new int[n];leftMax[0] = height[0];for (int i = 1; i < n; i++) {leftMax[i] = Math.max(leftMax[i - 1], height[i]);}rightMax[n - 1] = height[n - 1];for (int i = n - 2; i >= 0; i--) {rightMax[i] = Math.max(rightMax[i + 1], height[i]);}int res = 0;for (int i = 0; i < n; i++) {res += Math.min(leftMax[i], rightMax[i]) - height[i];}return res;}
}

image.png

面试公司

相关文章:

  • flutter3_douyin:基于flutter3+dart3短视频直播实例|Flutter3.x仿抖音
  • 话题——AI大模型学习
  • Spring Cloud Gateway Server MVC
  • 移植 Zephyr 到 Art-Pi
  • C语言 数组指针 指针数组
  • Python 全栈系列236 rabbit_agent搭建
  • 微服务(基础篇-003-Nacos集群搭建)
  • 黑帽子学Python
  • GDC期间LayaAir启动全球化战略
  • Flink中流式的各种聚合
  • Http 超文本传输协议基本概念学习摘录
  • Spark spark-submit 提交应用程序
  • 信号处理--使用EEGNet进行BCI脑电信号的分类
  • Apache HTTP服务器(Linux离线编译安装)
  • 6.3 BP神经网络
  • ----------
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • cookie和session
  • mysql 数据库四种事务隔离级别
  • orm2 中文文档 3.1 模型属性
  • Promise面试题,控制异步流程
  • SSH 免密登录
  • Vue2 SSR 的优化之旅
  • vue学习系列(二)vue-cli
  • 官方解决所有 npm 全局安装权限问题
  • 使用 Docker 部署 Spring Boot项目
  • 手写一个CommonJS打包工具(一)
  • Nginx实现动静分离
  • 阿里云服务器购买完整流程
  • 阿里云重庆大学大数据训练营落地分享
  • ​香农与信息论三大定律
  • #mysql 8.0 踩坑日记
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • (done) 两个矩阵 “相似” 是什么意思?
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (四)c52学习之旅-流水LED灯
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (转)IOS中获取各种文件的目录路径的方法
  • .net 获取url的方法
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • [ 常用工具篇 ] POC-bomber 漏洞检测工具安装及使用详解
  • [AI]文心一言出圈的同时,NLP处理下的ChatGPT-4.5最新资讯
  • [android] 手机卫士黑名单功能(ListView优化)
  • [BZOJ4016][FJOI2014]最短路径树问题
  • [EMWIN]FRAMEWIN 与 WINDOW 的使用注意
  • [ESP32] 编码旋钮驱动
  • [Excel VBA]单元格区域引用方式的小结
  • [FUNC]判断窗口在哪一个屏幕上
  • [HTML]Web前端开发技术12(HTML5、CSS3、JavaScript )——喵喵画网页
  • [IE编程] WebBrowser控件的多页面浏览(Tabbed Browsing)开发接口