写点什么

面试题笔记

作者:Clarke
  • 2022 年 3 月 28 日
  • 本文字数:511 字

    阅读完需:约 2 分钟

题目是接雨水的一个变体,

是在两个柱子之间接水。

所以和 leeteCode 接雨水的区别在于不需要减去柱子的高度,

每个间隔接水的高度取决于 leftMaxHeight 或者 righMaxHeight.

举例 int heights = {2,1,3} 结果是 4


public class Solution {    public static void main(String[] args){        int[] nums =  {3,3,3};        System.out.println(trap(nums));
}
static int trap(int[] height){ int ans = 0; int left = 0, right = height.length - 1; int leftMax = 0, rightMax = 0; while (left < right) { leftMax = Math.max(leftMax, height[left]); rightMax = Math.max(rightMax, height[right]); if (height[left] < height[right]) { //关键点1.1 计算这个格子能装多少水 ans += leftMax ; ++left; } else {//关键点2 反之,就移动右边界,这说明左边肯定能接住 //关键点2.1 计算这个格子能装多少水 ans += rightMax ; --right; }
} return ans;

}


}
复制代码


用户头像

Clarke

关注

还未添加个人签名 2018.04.15 加入

还未添加个人简介

评论

发布
暂无评论
面试题笔记_Clarke_InfoQ写作平台