题目描述:

给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。

解析:

图片说明
贪心算法
1.定义一个变量profit,更新最大利润
2.遍历循环数组,遍历到倒数第二个数即可,使每一个prices[i]和prices[i+1]去比较
如果大于,则profit加上prices[i+1] - prices[i]的值
如果小于或者等于,则什么也不用做
3.最后返回最大利润值

Java:

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

JavaScript:

var maxProfit = function(prices) {
    if(prices.length === 0) {
        return 0;
    }
    let profit = 0;
    for(let i = 0; i < prices.length - 1; i++) {
        if(prices[i+1] > prices[i]) {
            profit += prices[i+1] - prices[i];
        }
    }
    return profit;
};