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

Leetcode-.42接雨水

动态规划,记录i数组前后缀的最大值

image.png

image.png

class Solution:def trap(self, height: List[int]) -> int:n=len(height)pre_max=n*[0]pre_max[0]=height[0]for i in range(1,n):pre_max[i]=max(pre_max[i-1],height[i])suf_max=[0]*nsuf_max[-1]=height[-1]for i in range (n-2,-1,-1):suf_max[i]=max(suf_max[i+1],height[i])ans=0for h,pre,suf in zip(height,pre_max,suf_max):ans+=min(pre,suf)-hreturn ans
  • pre_max[i]:表示从最左边到当前位置 i 为止的最大柱子高度;
    pre_max[i]=max⁡(height[0],height[1],…,height[i])pre\_max[i]=max⁡(height[0],height[1],…,height[i])pre_max[i]=max(height[0],height[1],,height[i])
  • suf_max[i]:表示从当前位置 i 到最右边的最大柱子高度;
    suf_max[i]=max⁡(height[i],height[i+1],…,height[n−1])suf\_max[i]=max⁡(height[i],height[i+1],…,height[n−1])suf_max[i]=max(height[i],height[i+1],,height[n1])

对于下标 i,下雨后水能到达的最大高度等于下标 i 两边的最大高度的最小值,下标 i 处能接的雨水量等于下标 i 处的水能到达的最大高度减去 height[i]。

http://www.dtcms.com/a/296753.html

相关文章:

  • 【Linux基础知识系列】第六十四篇 - 了解Linux的硬件架构
  • 【学习】数字化车间与智能工厂如何推进制造业转型
  • 放款需要注意的事项
  • C++实战:人脸识别7大核心实例
  • 【Java】空指针(NullPointerException)异常深度攻坚:从底层原理到架构级防御,老司机的实战经验
  • 网络测试工具
  • UE 加载本地Json文件
  • 【Servo】裸机还是RTOS驱动架构如何选?
  • C++核心编程学习--对象特性--对象的初始化和清理
  • MCU(微控制器)中的高电平与低电平?
  • 基于LiteOS的OTA组件实现对终端固件的差分升级和全量升级
  • Rust与YOLO目标检测实战
  • 【redis其它面试问题】
  • 【OD机试】矩阵匹配
  • JavaScript高级特性与优化全解析
  • JManus Plan-Act模式:如何对用户的需求进行规划和执行
  • 【第五节】列表渲染
  • p5.js 椭圆的用法:从基础到创意应用
  • Java 实现 B/S 架构详解:从基础到实战,彻底掌握浏览器/服务器编程
  • 北京-4年功能测试2年空窗-报培训班学测开-第五十九天-模拟面试前
  • 前端学习日记(十二)
  • MongoDB常用场景
  • jax study notes[19]
  • 【Kubernetes】通过 YAML 创建 nginx Pod 并验证,流程总结
  • Python编程进阶知识之第五课处理数据(matplotlib)
  • rust流程控制
  • Code Composer Studio:CCS 设置代码折叠
  • 20.OSPF路由协议·单区域
  • 枚举右,维护左高级篇
  • [明道云] -基础入门1- 什么是明道云 HAP 平台?