《剑指offer第二版》面试题63:股票的最大利润(java)

2020-03-01  本文已影响0人  castlet

题目描述

解题思路

  1. 该题目即求数组的所有数的最大差值。
  2. 遍历数组,假设当前遍历第i个数组,用min存储前面i-1个数字的最小值,maxDiff记录当前数字和min的最大差值。遍历完数组后,返回maxDiff即可。

代码

int maxDiff(int[] arr) {
    if (arr == null || arr.length <= 0) {
        return -1;
    }
    int min = arr[0];
    int maxDiff = 0;
    for (int i = 1; i < arr.length; i++) {
        if (arr[i] - min > maxDiff) {
            maxDiff = arr[i] - min;
        }
        if (arr[i] < min) {
            min = arr[i];
        }
    }
    return maxDiff;
}
上一篇 下一篇

猜你喜欢

热点阅读