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

day04(11.2)——leetcode面试经典150

42. 接雨水

这题我一开始想的是从左到右遍历除了头尾的所有列,在第i列的时候,先从左边找到最高的一列,再从右边找到最高的一列,再来判断是左边的最高列更小还是右边的最高列更小,最后如果更小的最高列如果大于当前i的高度,则sum要加上他们之间的差值。。。但是这样就寄了,超时了,所以我看题解了哈哈哈哈,用了双指针的方法:

        左边一个left指向最左边,右边一个right指向最右边,左边永远小于右边进行循环判断,判断一下当前左右两边的指针是否大于左右两边各自的高度最大值,如果大于,那就更新,如果小于,那就不用管了,然后再进行判断比较左边的最大值大,还是右边的最大值大,如果左边的最大值大,说明左边的墙更高,右边的墙更矮,右边的点只需要低于右边的最大值就能产生积水,所以先判断一下当前右边的点是否小于当前右边的最大值,如果小于,则他们的差值累加到积水的总值上,右边再往中间走一步,左边亦是如此.....

42. 接雨水

题目:

题解:

class Solution {public int trap(int[] height) {// 左右指针指向索引int left = 0;int right = height.length-1;// 计算左边碰到最高的柱子的长度int leftMax = 0;//计算右边碰到最高的柱子的长度int rightMax = 0;// 用来统计积水int sum = 0;while(left < right) {// 更新当前左边的最高柱子的长度if(height[left] > leftMax) {leftMax = height[left];}// 更新当前右边的最高柱子的长度if(height[right] > rightMax) {rightMax = height[right];}//如果当前左边的最高柱子短于当前右边柱子的长度//此时说明左边如果有短于这个左边最长柱子长度的柱子,//那么就一定是积水,所以从左边开始统计积水if (leftMax < rightMax ) {sum+=(leftMax - height[left]);left++;}//右边更短亦是如此else {sum+=(rightMax - height[right]);right--;}}return sum;}
}

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

相关文章:

  • mysql常识和jdbc工具类的进化以及连接池思想
  • 七.Docker网络
  • 怎么做免费视频网站吗网站建设哪儿好
  • 推荐优质wordpress外贸网站主题
  • TDengine 数学函数 ASCII 用户手册
  • @Builder注解导致mybatis类型匹配错误 Cannot determine value type from string
  • AI模型开发 | 从零部署Deepseek OCR模型,零门槛开发PDF文档解析工具
  • Linux INPUT 子系统实验
  • 1000套实习报告模板大合集+多行业多专业实习总结实践报告素材
  • 百度网站快速优化国内flask做的网站
  • Spring AI--Prompt、多轮对话实现方案
  • 网页模板免费下载网站广州页面制作公司
  • Java:继承与多态
  • 10. 从0到上线:.NET 8 + ML.NET LTR 智能类目匹配实战--Web API 接口与前端集成:部署与生产运维:稳定性、可观测与成本
  • 网站开发招标网网站免费注册会员怎么做
  • linux系统中网络编程的实现
  • Vue-github 用户搜索案例
  • GD32F407VE天空星开发板的电压电流检测
  • 网站优化文章怎么做蔡甸城乡建设局网站
  • 中小企业网站开发韵茵全屋定制家具品牌排行榜前十名
  • 分库分表MyCat 架构迁移 OceanBase | 百丽核心财务系统迁移经验总结与问题汇总
  • joomla 企业网站模板沈阳网站优化 唐朝网络
  • Flink 优化-反压处理
  • AI代码开发宝库系列:LangChain 工具链:从LCEL到实际应用
  • 泉州网站排名优化十大免费论文网站
  • 高校招生网站建设做网站一定要效果图吗
  • 学习笔记四:性能度量
  • 使用JavaScript和Node.js构建简单的RESTful API
  • 【生活】做蛋糕
  • (论文速读)EgoLife:走向自我中心的生活助手