面试题 17.21. 直方图的水量
题目
思路
暂无
代码
下面展示一些 具体代码
。
class Solution {
public int trap(int[] height) {
int n = height.length;
if(n<3){
return 0;
}
int leftArr[] = new int[n];
int rightArr[] = new int[n];
int water = 0;
//初始化预处理数组
int leftmax = height[0];
for(int i=1;i<n;i++){
if(leftmax<height[i]){
leftmax = height[i];
}
leftArr[i] = leftmax;
}
//初始化预处理数组
int rightmax = height[n-1];
for(int i=n-2;i>0;i--){
if(rightmax<height[i]){
rightmax = height[i];
}
rightArr[i] = rightmax;
}
for(int i=0;i<n;i++){
int w = Math.min(leftArr[i],rightArr[i])-height[i];
if(w>0){
water+=w;
}
}
return water;
}
}
运行结果!
题目连接
https://leetcode-cn.com/problems/volume-of-histogram-lcci/