• 双循环暴力求解,居然没有ttl
  • dp的思路,dp表示当前最大利润(有点牵强,dp[i]与dp[i-1]几乎没有关系):dp[i]=input[i]-Math.min(0-i),等于0时表示,买入当天即卖出。最后max=max(dp),本题直接用ints数组作为dp数组,不需要额外开辟空间了。
    import java.util.*;
    public class Main {
      public static void main(String[] args){
          Scanner scanner = new Scanner(System.in);
          String[] s = scanner.nextLine().split(" ");
          int[] ints = Arrays.stream(s).mapToInt(Integer::parseInt).toArray();
          int max = Integer.MIN_VALUE;
          //        for(int i = 0; i < ints.length; i++){
          //            for(int j = i; j < ints.length; j++){
          //                max = Math.max(max, ints[j] - ints[i]);
          //            }
          //        }
          int min = Integer.MAX_VALUE;
          for(int i = 0; i < ints.length; i++){
              min = Math.min(min, ints[i]);
              ints[i] -= min;
          }
          for(int i = 0; i < ints.length; i++){
              max = Math.max(max, ints[i]);
          }
          System.out.println(max);
      }
    }
    

```