leetcode

maxProfi-链接

实现的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
class Solution {
public:
int maxProfit(vector<int>& prices) {
int sum=0;
for(int i=0;i<prices.size();i++)
{
if(i+1<prices.size()&&prices[i+1]>prices[i])
sum+=(prices[i+1]-prices[i]);
}
return sum;
}
};

只要今天的价格大于昨天的价格就卖出去,比如第二天的价格是1,第三天的价格是5,也就意味着prices[1]<prices[2],我们只需要prices[2]-prices[1]就可以了,我们卖出去之后可以在当天购买,所以就算prices[3]=3改为8(比5大的数)我们仍然可以将prices[3]-prices[2]卖出,获得利润,如果prices[3]比5小,我们直接跳过prices[2],然后继续比较prices[3]和pirces[4];
最后将所有的利润都加起来就是我们需要的answer