当青训营遇上码上掘金 双指针接青豆

100 阅读1分钟

当青训营遇上码上掘金 当青训营遇上码上掘金 双指针法接青豆,保证一边的最大值是可信的即可。

/**
* 支持 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);
   }
}