问题描述
Java 双指针
class Solution {
public int trap(int[] height) {
int len = height.length;
//找到最大值的下标
int maxValue = 0;
int maxIndex = 0;
for(int i = 0;i < len;i++){
if(height[i] > maxValue){
maxValue = height[i];
maxIndex = i;
}
}
int ans = 0;
//遍历左边
for(int left = 0;left < maxIndex;left++){
for(int right = left + 1;right <= maxIndex;right++){
if(height[right] < height[left]){
ans += height[left] - height[right];
}else {
left = right;
}
}
}
//遍历右边
for(int right = len - 1;right > maxIndex;right--){
for(int left = right - 1;left >= maxIndex;left--){
if(height[left] < height[right]){
ans += height[right] - height[left];
}else {
right = left;
}
}
}
return ans;
}
}