您的位置:首页 > 编程语言 > C语言/C++

122. Best Time to Buy and Sell Stock II

2016-07-20 17:13 357 查看

leetcode 122

Say you have an array for which the ith element is the price of a given stock on day
i.

Design an algorithm to find the maximum profit. You may complete as many transactions as you like (ie, buy one and sell one share of the stock multiple times). However, you may not engage in multiple transactions at the same time (ie, you must sell the stock
before you buy again).

题意:一个数组中的第i个元素表示在第i天的股票价格。你可以完成任意次交易,但必须保证最多拥有一支股票,即在买入股票之前已经将股票卖出。求最大收益。

解题思路:股票的每天价格可以画成一条折线图,题意即求每个单调增区间的上升值的和。

class Solution {
public:
int maxProfit(vector<int>& prices) {
if(prices.size()<=1)
return 0;
int maxP=0;//记录最大收益
for(int i=1;i<prices.size();i++)
{
int temp=prices[i]-prices[i-1];
if(temp>0)
maxP=maxP+temp;
}
return maxP;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode C++