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

LeetCode 刷题【42. 接雨水】

42. 接雨水

自己做

解:双指针左右分割容器

class Solution {
public:int trap(vector<int>& height) {int res = 0;int len = height.size();if(len <= 2)      //构不成一个容器了,直接返回return res;int end = len - 1;        //右边界int start = 0;            //左边界//对左边的边界初始化while(height[start] <= height[start + 1]){    //排除前面部分start++;if(start == end - 1)      //构不成一个容器了,直接返回return res;}//对右边的边界初始化while(height[end - 1] >= height[end]){    //排除后面部分end--;if(end == start + 1)      //构不成一个容器了,直接返回return res;}int left = start + 1;     //左边容器起始int right = end - 1;      //右边容器起始//从左往右靠拢int left_capacity = 0;while(left <= end){if(height[left] < height[start]){ //当遇到比边界小的时,将其看做底,计算当前容器的容量left_capacity += height[start] - height[left];    //累加当前容器的容量}else{                           //当遇到比边界大或者相等时,该容器就封边了,开始找下个容器start = left;                 //新的容器边界res += left_capacity;          //将该容器的容量累加进结果中left_capacity = 0;            //重置容量}left++;                         //延伸容器}//从右往左靠拢int right_capacity = 0;while(right >= start){if(height[right] < height[end]){ //当遇到比边界小的时,将其看做底,计算当前容器的容量right_capacity += height[end] - height[right];    //累加当前容器的容量}else{                           //当遇到比边界大或者相等时,该容器就封边了,开始找下个容器end = right;                 //新的容器边界res += right_capacity;          //将该容器的容量累加进结果中right_capacity = 0;            //重置容量}right--;                         //延伸容器}return res;}
};

今日总结

好耶,写的第一版代码直接没有任何报错地过了,也是能跑到最优解的程度,今天没有任何调试,一遍过

http://www.lryc.cn/news/621964.html

相关文章:

  • 基于51单片机声控灯设计 智能声音+光线控制 楼道灯 声控开关
  • RabbitMQ面试精讲 Day 23:分布式事务与可靠投递
  • 【Redis】分布式系统的演化过程
  • [Oracle数据库] Oracle 常用函数
  • 接口芯片断电高阻态特性研究与应用分析
  • 基于 ArcFace/ArcMargin 损失函数的深度特征学习高性能人脸识别解决方案
  • 解释器模式C++
  • EN 61547照明产品的电磁兼容抗干扰标准
  • 图数据库如何构筑 Web3 风控防线 聚焦批量注册与链上盗转 悦数图数据库
  • eBPF技术介绍
  • 【Java】HashMap的详细介绍
  • YAML:锚点深度解析,告别重复,拥抱优雅的配置艺术
  • 【Java Web 快速入门】十、AOP
  • 「 CentOS7 安装部署k8s」
  • 水环境遥感分析!R语言编程+多源遥感数据预处理;水体指数计算、水深回归分析、水温SVM预测、水质神经网络建模及科研级可视化制图
  • 关于simplifyweibo_4_moods数据集的分类问题
  • 云原生俱乐部-k8s知识点归纳(3)
  • 2025年中国AI算力基础设施发展趋势洞察
  • MySQL 全面指南:从入门到精通——深入解析安装、配置、操作与优化
  • Linux 进程、线程与 exec/系统调用详解
  • 力扣top100(day04-06)--贪心算法
  • 自动处理考勤表——如何使用Power Query,步步为营,一点点探索自定义函数
  • 陪伴,是挫折教育最暖的底色
  • Java 中使用阿里云日志服务(SLS)完整指南
  • Hologres实战:路径分析函数
  • 【开发语言】Groovy语言:Java生态中的动态力量
  • 1.2. qemu命令起虚拟机增加网络配置
  • [git] 当GitHub宕机时,我们如何协作?| github同步gitee的部署方法
  • uniApp App 端日志本地存储方案:实现可靠的日志记录功能
  • Flutter 自定义组件开发指南