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

【力扣打卡系列】滑动窗口与双指针(接雨水)

坚持按题型打卡&刷&梳理力扣算法题系列,语言为go,Day4

接雨水
  • 题目描述在这里插入图片描述
  • 解题思路
    • 双指针遍历
    • 前后缀最大值的应用
    • 短板效应,取其中较小的一方即可
    • 计算方式:某一个水桶的接水面积 = 该处pre_max和suf_max小的一方减去高度(height[left] 或 height[right] )的差值
    • 法二:分别开两个数组pre_max和suf_max,每个位置的接水面积就等于两者中的较小值减去当前位置的height值,遍历累加即可
  • 代码参考
func trap(height []int) int {left,right := 0,len(height)-1ans := 0pre_max,suf_max := 0,0for left<=right{pre_max = max(height[left], pre_max)suf_max = max(height[right], suf_max)if pre_max < suf_max{ans += pre_max - height[left]left++}else{ans += suf_max -height[right]right--}}return ans
}
  • tips
    • Go 语言的 for 循环支持三种形式
    • 传统的三部分形式:for init; condition; post { ... }
    • 基于范围的循环:for i := range someSlice { ... }
    • 简单循环条件:for condition { ... }
    • 注意:前缀和跟left,后缀和跟right,不需要单开遍历变量i

http://www.mrgr.cn/news/54750.html

相关文章:

  • FineReport 分页
  • SpringBoot篇(二、制作SpringBoot程序)
  • vue前端开发框架的常见知识点和应用
  • MySQL 日常维护指南:常见任务、频率及问题解决
  • 深度学习-1:逻辑回归和梯度下降
  • 汽车免拆诊断案例 | 2023款零跑C01纯电车后备厢盖无法电动打开和关闭
  • 【Maven】一篇带你了解Maven项目管理工具
  • int argc, char *argv[]
  • 6.C++经典实例-计算给定范围内的素数(质数)
  • SLACC Simion-based Language Agnostic Code Clones
  • 基于STM32的超声波流量计设计
  • python编译问题 当你编译第一个python程序时可能出现如下错误
  • 【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,1-11
  • Tornado简单使用
  • JavaScript 新手必知的基本概念
  • 深入了解 Flannel(3):vxlan在flannel中的作用
  • 【Linux系统编程】冯诺依曼体系结构与操作系统
  • 操作系统之内存管理基本概念
  • SpringCloudAlibaba[Nacos]注册配置中心注册与发现服务
  • CGAL专篇-Kernel计算精度
  • 使用模拟器获取app的素材文件
  • 《30 年失联姐妹的短暂相聚与决绝分手》
  • 整合全文检索引擎 Lucene 添加站内搜索子模块
  • Java中的动态代理——介绍与使用示例
  • 数据库必会面试题(含答案)
  • 数据结构与算法——Java实现 41.对称二叉树