当青训营遇上码上掘金 当青训营遇上码上掘金 双指针法接青豆,保证一边的最大值是可信的即可。
/**
* 支持 import Java 标准库 (JDK 1.8)
*/
import java.util.*;
/**
* 注意:目前 Java 代码的入口类名称必须为 Main(大小写敏感)
*/
public class Main {
public static void main(String []args) {
int[] heigth = new int[]{5,0,2,1,4,0,1,0,3};
int ans = 0;
int left = 1, right = heigth.length - 2;
int leftMax = heigth[0];
int rightMax = heigth[right + 1];
while(left <= right){
leftMax = Math.max(leftMax, heigth[left]);
rightMax = Math.max(rightMax, heigth[right]);
if(leftMax > rightMax){
ans += rightMax - heigth[right];
right--;
}else{
ans += leftMax - heigth[left];
left++;
}
}
System.out.println(ans);
}
}