题目描述
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
思路
将每两个相邻的数进行比较,并相加每个后一项较大时的差。
代码实现
class Solution {
public:
int maxProfit(vector<int>& prices) {
int n= 0;
int a=prices.size()-1;
for(int i=0; i<a; ++i)
{
if(prices[i] < prices[i+1])
n+= prices[i+1]-prices[i];
}
return n;
}
};
运行详情
错误前例
class Solution {
public:
int maxProfit(vector<int>& prices) {
int a[10];
int j=0;
for(int i=0;i<prices.size();i++)
{
if(prices[i]<prices[i+1])
{
a[j]=prices[i+1]-prices[i];
j++;
}
}
int sum=0;
for(int i=0;i<10;i++)
sum+=a[i];
return sum;
}
};
感觉不对,但是也不知道哪错了。