动态规划,设置一个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];
} 


京公网安备 11010502036488号