当前位置:网站首页>leetcode:42. 接雨水【双指针很优雅】
leetcode:42. 接雨水【双指针很优雅】
2022-06-29 15:37:00 【白速龙王的回眸】

分析
双指针从最左最右开始
一个个比较height,如果当前这个小就往内移动
用leftMax和rightMax记录左右两边遍历过的最大的值
要知道的是,当前移动的那一端,一定是被比下去的,也就是说当前没移动的那一个点一定是目前最大的
因此比如左边移动了,它这个一定会被leftMax和height[j]包围,并且leftMax一定是小的,所以贡献就是leftMax - height[i]
ac code
class Solution:
def trap(self, height: List[int]) -> int:
if not height:
return 0
i, j = 0, len(height) - 1
leftMax, rightMax = height[0], height[-1]
ans = 0
while i <= j:
leftMax = max(leftMax, height[i]) # 左边max
rightMax = max(rightMax, height[j]) # 右边max
# 中间ij判断
if height[i] < height[j]:
# height[i]被leftmax和height[j]夹着,leftmax更小(不然不会挪走)
ans += leftMax - height[i]
i += 1
else:
# height[j]被rightmax和height[i]夹着,rightmax更小(不然不会挪走)
ans += rightMax - height[j]
j -= 1
return ans
总结
接雨水双指针最为优雅
边栏推荐
- 天谋科技 Timecho 完成近亿元人民币天使轮融资,围绕 Apache IoTDB 打造工业物联网原生时序数据库
- BFD principle and configuration
- Building SQL statements in Excel
- 京东联盟API - 万能转链接口 - 京品库接口 - 接口定制
- Taro2.* 小程序配置分享微信朋友圈
- stlink故障修复
- Dynamically listening for DOM element height changes
- Taro 小程序开启wxml代码压缩
- CVPR 2022 | 大幅减少零样本学习所需的人工标注,马普所和北邮提出富含视觉信息的类别语义嵌入
- European standard plug en50075 test items
猜你喜欢

2022 OpenVINO DevCon 大揭秘!英特尔携众多合作伙伴深化开发者生态建设,释放AI产业创新潜能

Stlink troubleshooting

Detailed explanation of list set

cmake学习-2

stlink故障修复

File常用工具類, 流相關運用 (記錄)

12.UDP协议-bite

When easygbs calls the interface for obtaining real-time snapshots, how to solve the problem of white squares?

Imgutil image processing tool class, text extraction, image watermarking

《网络是怎么样连接的》读书笔记 - 服务器端的局域网中(四)
随机推荐
File常用工具類, 流相關運用 (記錄)
CVPR 2022 | 大幅减少零样本学习所需的人工标注,马普所和北邮提出富含视觉信息的类别语义嵌入
Classe d'outils commune de fichier, application liée au flux (enregistrement)
攻防演练之战前扫雷:漏洞管理的5大措施
Scroll, do you understand?
Autodesk Revit 2023软件安装包下载及安装教程
Taro2.* 小程序配置分享微信朋友圈
JD health responded that it planned to acquire JD assets with us $355.4 million: related to pet health product category
关于 麒麟系统启动应用报错“undefined symbol: __cxa_throw_bad_array_new_length, version Qt_5“ 的解决方法
等保测评结论为差,是不是表示等保工作白做了?
radar transmitter
File common tool class, stream related application (record)
企业转型升级之道:数字化转型,思想先行
PostgreSQL source code learning (23) -- transaction log ④ - log assembly
golang操作NSQ分布式消息队列
PostgreSQL source code learning (25) -- transaction log ⑥ - wait for log writing to complete
有望显著提高集成光子电路的计算性能,清华团队提出了一种衍射图神经网络框架
13.TCP-bite
EasyGBS调用获取实时快照接口时,出现白色方块该如何解决?
three.js和高德地图结合引入obj格式模型-效果演示