【done】剑指offer63:股票的最大利润
力扣188,https://leetcode.cn/problems/gu-piao-de-zui-da-li-run-lcof/description/(注意:本题与主站 121 题相同:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/)
动态规划思路;
方法1
class Solution {public int bestTiming(int[] prices) {int size = prices.length;if (size < 2) {return 0;}int[] dp = new int[size]; // dp[i]第i天操作可以获取的最大利润dp[0] = 0;dp[1] = prices[1] - prices[0];int max = Math.max(dp[0], dp[1]);for (int i = 2; i < size; ++i) {int diff = prices[i] - prices[i - 1];dp[i] = Math.max(diff + dp[i - 1], diff); // 卖 与 不卖 取较大值max = Math.max(max, dp[i]);}return max;}
}
方法2
找最小最大点,好方法!
class Solution {public int bestTiming(int[] prices) {int min = Integer.MAX_VALUE;int max = 0;for(int i = 0;i<prices.length;i++){min = Math.min(prices[i],min);max = Math.max(max,prices[i]-min);}return max;}
}