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