java Leetcode - 诱捕雨水收集雨水
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java Leetcode - 诱捕雨水收集雨水相关的知识,希望对你有一定的参考价值。
public int trap(int[] height){
int res = 0,mx = 0,n = height.length();
int[] dp = new int[height.length]{0};
for(int i = 0; i < height.length; i++){
dp[i]=mx;
mx = max(mx,height[i]); //从左往右遍历得到i位置左边最大的高度
}
mx = 0;
for(int i = height.length-1; i >=0; i--){
dp[i]= min(dp[i],mx); //从右往左遍历得到i位置右边最大的高度,并取左边最大高度和右边最大高度较小值
mx= max(mx,height[i]);//更新右边最大的高度
id(dp[i]>height[i]) res += dp[i]-height[i];//res累加的是每一个bar上面会存多少水
}
return res;
}
以上是关于java Leetcode - 诱捕雨水收集雨水的主要内容,如果未能解决你的问题,请参考以下文章
java 42.诱捕雨水(#)。java
java 42.诱捕雨水(#)。java
java 42.诱捕雨水(#)。java
java 42.诱捕雨水(#)。java
java 42.诱捕雨水(#)。java
leetcode python 042收集雨水