給定一個數(shù)組,它的第 i 個元素是一支給定股票第 i 天的價格。
設計一個算法來計算你所能獲取的最大利潤。你可以盡可能地完成更多的交易(多次買賣一支股票)。
這個問題的核心在于,做出一次買賣后,之前的都不要在管了,
因此,設計兩個指針,一個指針指一次買賣中的最小值,一次指一個買賣中的最大值。
問題的核心就在于買賣如何分,實際上,買可以隨時買,但賣一定是最高價賣。賣完這次交易就算結束了。/
class Solution {
public int maxProfit(int[] prices) {
if (prices.length<=1){
return 0;
}
int min = 0;
int max = 0;
int p =0;
while (max+1<prices.length){
if (prices[min]>prices[max]){
min = max;
max = max + 1;
continue;
}
if (prices[max]>prices[max+1]){
p = p + prices[max]-prices[min];
min = max+1;
max = max+1;
continue;
}
if (max+2==prices.length){
p=p+prices[max+1]-prices[min];
}
max = max+1;
}
return p ;
}
}