动态规划,设置一个min, 保存之前遇到的最小值。dp[i] = Math.max(prices[i]-min, dp[i-1])
public int maxProfit (int[] prices) { // write code here int[] dp = new int[prices.length]; dp[0] = 0; int min = prices[0]; for (int i = 1; i < prices.length; i++) { min = min > prices[i] ? prices[i] : min; dp[i] = Math.max(prices[i] - min, dp[i-1]); } return dp[prices.length-1]; }