2020.04.09笔记
leetcode3 NO.122买卖股票的最佳时机
- 题目:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
- 自己解答:保证最大利润的方法就是每天赚就买 亏就不买。拆分成小的问题解决。时间复杂度n,空间复杂度1
class Solution {
public int maxProfit(int[] prices) {
int maxprofit = 0;
for(int i=1; i<prices.length; i++){
int minusNum = prices[i] - prices[i-1];
if(minusNum > 0){
maxprofit = maxprofit + minusNum;
}
}
return maxprofit;
}
}
- 优化解答:几乎没有优化空间 省略