佛山网站建设公司哪家最好,阿里云 网站接入方式,怎么做音乐mp3下载网站,微企点建站效果付费目录 1.题目2.答案3.提交结果截图 链接#xff1a; 42. 接雨水 1.题目
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图#xff0c;计算按此排列的柱子#xff0c;下雨之后能接多少雨水。
示例 1#xff1a; 输入#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1]
输出 42. 接雨水 1.题目
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图计算按此排列的柱子下雨之后能接多少雨水。
示例 1 输入height [0,1,0,2,1,0,1,3,2,1,2,1]
输出6
解释上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图在这种情况下可以接 6 个单位的雨水蓝色部分表示雨水。 示例 2
输入height [4,2,0,3,2,5]
输出9提示
n height.length1 n 2 * 10^40 height[i] 10^5 2.答案
class Solution {public int trap(int[] height) {if (height.length 2) {return 0;}// 找到最大值int max Arrays.stream(height).max().getAsInt();int maxPosition 0;int leftH 0;int water 0;// 从左往右for (int i 0; i height.length; i) {if (height[i] max) {maxPosition i;break;}leftH Math.max(leftH, height[i]);if (height[i] leftH) {water leftH - height[i];}}// 从右往左int rightH 0;for (int i height.length - 1; i maxPosition; i--) {rightH Math.max(rightH, height[i]);if (height[i] rightH) {water rightH - height[i];}}return water;}
}3.提交结果截图 整理完毕完结撒花~