力扣42. 接雨水 (暴力法)
作者:互联网
思路就是我的世界放水块,遍历数组所有元素,在该位置放水块,水能落进去并且存住就加到sum中(此过程不考虑别的位置)。
class Solution {
public int trap(int[] height) {
int sumWater = 0;
for(int i = 1;i < height.length -1;i++){
int leftMaxHeight = 0;
int rightMaxHeight = 0;
for(int j = i-1;j >= 0;j--)
leftMaxHeight = Math.max(leftMaxHeight,height[j]);
for(int j = i+1;j <height.length;j++)
rightMaxHeight = Math.max(rightMaxHeight,height[j]);
sumWater += Math.max(Math.min(leftMaxHeight,rightMaxHeight)-height[i],0);//看了官方题解后发现Math.max有点多余,因为在找左右最大值时就确保了左右最大值一定大于等于该处的值,不会出现相减出现负数的问题。
}
return sumWater;
}
}
标签:暴力,int,放水,sum,leftMaxHeight,42,height,力扣,Math 来源: https://blog.csdn.net/m0_45311187/article/details/110808187