图解思路
代码
class Solution {
public int trap(int[] h) {
int s = 0;
if(h.length <= 1) return s;
for(int i = 1; i < h.length; i++){
int left_max = 0, right_max = 0;
//向右找右波峰
for(int j = i; j < h.length; j++) {right_max = Math.max(right_max, h[j]);}
//向左找左波峰
for(int j = i; j >= 0; j--){left_max = Math.max(left_max, h[j]);}
//每个点能接的雨水量
s += Math.min(left_max, right_max) - h[i];
}
return s;
}
}
字很好看~
用什么工具画的图?挺酷的
ipad上用goodnotes写的~