题目:
给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
JAVA:
class Solution {
public int maxProfit(int[] prices) {
int length = prices.length;
if(length ==0) return 0;
int i=0;
int max = 0;//总收益
for(int j=1;j<length;j++){
if(prices[i]>prices[j]){//当天价格比第二天贵,则不买,有票就卖掉
}else{//买入
max = max + (prices[j] - prices[i]);
}
i++;
}
return max;
}
}
C++:
class Solution {
public:
int maxProfit(vector<int>& prices) {
int length = prices.size();
int i=0;
int max = 0;//总收益
for(int j=1;j<length;j++){
if(prices[i]>prices[j]){//当天价格比第二天贵,则不买,有票就卖掉
}else{//买入
max = max + (prices[j] - prices[i]);
}
i++;
}
return max;
}
};
C:
int maxProfit(int* prices, int pricesSize){
if(pricesSize == 0) return 0;
int i=0;
int max = 0;//总收益
for(int j=1;j<pricesSize;j++){
if(prices[i]>prices[j]){//当天价格比第二天贵,则不买,有票就卖掉
}else{//买入
max = max + (prices[j] - prices[i]);
}
i++;
}
return max;
}
ps: 没搞懂,刷算法,还有买股票,而且还提前把后面的价格标出来了,这要是能提前知道后面价格,买股票还有亏钱的吗,虽然不符合场景,但也不耽误训练数组算法。