买卖股票的最佳时机 II(26)

贪心

不用去分类啥的,只考虑当前的最优解,即一天一天过

class Solution {
    
    
    public int maxProfit(int[] prices) {
    
    
        int n = prices.length;
        int sum = 0;
        for(int i =0;i<n-1;i++){
    
    
            if(prices[i] < prices[i+1]){
    
    
                sum += prices[i+1] - prices[i];
            }
        }
        return sum;
    }
}

状态转移

class Solution {
    
    
    public int maxProfit(int[] prices) {
    
    
        int n = prices.length;
        int[][] dp = new int[n][2];
        dp[0][0] = 0;
        dp[0][1] = -prices[0];
        for (int i = 1; i < n; ++i) {
    
    
            dp[i][0] = Math.max(dp[i - 1][0], dp[i - 1][1] + prices[i]);
            dp[i][1] = Math.max(dp[i - 1][1], dp[i - 1][0] - prices[i]);
        }
        return dp[n - 1][0];
    }
}

おすすめ

転載: blog.csdn.net/qq_51985653/article/details/120973199