题目描述

假定你知道某只股票每一天价格的变动。
你最多可以同时持有一只股票。但你可以无限次的交易(买进和卖出均无手续费)。
请设计一个函数,计算你所能获得的最大收益。

解题思路

  • 其实只要把每一天和前一天的股价相减,为正整数则统计即可。

Java代码实现

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