lintcode-150-买卖股票的最佳时机 II

150-买卖股票的最佳时机 II

假设有一个数组,它的第i个元素是一个给定的股票在第i天的价格。设计一个算法来找到最大的利润。你可以完成尽可能多的交易(多次买卖股票)。然而,你不能同时参与多个交易(你必须在再次购买前出售股票)。

样例

给出一个数组样例[2,1,2,0,1], 返回 2

标签

数组 贪心 枚举法

思路

使用贪心算法,只要可以产生利润(后一天比前一天股票价值上升),就进行一次买卖

code

class Solution {
public:
    /**
     * @param prices: Given an integer array
     * @return: Maximum profit
     */
    int maxProfit(vector<int> &prices) {
        // write your code here
        int size = prices.size();
        if(size <= 0) {
            return 0;
        }

        int max = 0;
        for(int i=1; i<size; i++) {
            if(prices[i] - prices[i-1] > 0) {
                max += (prices[i] - prices[i-1]);
            }
        }
        return max;
    }
};
posted @ 2017-07-26 14:40  LiBaoquan  阅读(2176)  评论(0编辑  收藏  举报