買賣股票的最佳時機 II


給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。設計一個算法來計算你所能獲取的最大利潤。你能夠儘量地完成更多的交易(屢次買賣一支股票)。注意:你不能同時參與多筆交易(你必須在再次購買前出售掉以前的股票)java


解題思路

若是把數組想象成一個線性圖,那很天然的,最大利潤就是全部上坡之和,而造成上坡的條件就是後一個數要比前一個數大,回到本題。所以只要今天價格小於明天價格,就在今天買入而後明天賣出,利潤之和就是最大的算法

class Solution {
    public int maxProfit(int[] prices) {
        int ans = 0;
        for(int i = 1; i <= prices.length - 1; i++) {
            if(prices[i] > prices[i - 1]) {
                ans += prices[i] - prices[i - 1];
            }
        }
        return ans;
    }
}
相關文章
相關標籤/搜索