最大收益

2018-07-02  本文已影响35人  牵丝笼海

题目描述:
假设您有一个数组,其中第i个元素是第i天给定股票的价格。
设计一个算法来找到最大的利润。
您可以根据需要完成尽可能多的交易(即多次买入和卖出一次股票)。
但是,您不得同时进行多笔交易(即您必须在再次购买之前出售股票)。

解题思路
判断相邻元素是否递增,因为连续递增可以看作一次买入卖出操作,统计所有递增量

/*
判断相邻元素是否递增,因为连续递增可以看作一次买入卖出操作,统计所有递增量
*/
int maxProfit(vector<int> &prices)
{
    int res = 0;
    int n = prices.size();

    if(n < 2)   return 0;

    for (int i = 1; i < n; ++i)
    {
        if(prices[i] > prices[i-1])
            res += prices[i] - prices[i-1];
    }

    return res;
}
上一篇下一篇

猜你喜欢

热点阅读