给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
思路。只需要前一天比后一天小就可以前一天卖出,买进,后一天再卖出,计算
public static int maxProfit1(int[] prices) {
int sum = 0;
for(int i=1;i<prices.length;i++) {
if (prices[i] > prices[i-1]) {
sum += prices[i]-prices[i-1];
}
}
return sum;
}
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。
思路,只需要找出最小值,然后计算最大差就可以
public int maxProfit(int[] prices) {
if(prices.length <= 1) {
return 0;
}
int min =Integer.MAX_VALUE;
int max =0;
for(int i =0;i<prices.length;i++) {
if(min >= prices[i]) {
min = prices[i];
}else if(prices[i] -min > max) {
max = prices[i] -min;
}
}
return max;
}