動態規劃-dp-面試題63. 股票的最大利潤-同-121. 買賣股票的最佳時機+122. 買賣股票的最佳時機 II

動態規劃 前i天的最大收益 = max{前i-1天的最大收益,第i天的價格-前i-1天中的最小价格}

class Solution {
    public int maxProfit(int[] prices) {
        int max=0,min=99999;
        for(int i=0;i<prices.length;i++){
            max=Math.max(max,prices[i]-min);
            min=Math.min(min,prices[i]);
        }
        return max;
    }
}

 暴力:

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

122. 買賣股票的最佳時機 II

解題思路:只要今天比昨天價格高,即買入股票。 

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章