序
本文主要研究一下leetcode之买卖股票的最佳时机
题目
代码语言:javascript复制给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。
注意:你不能在买入股票前卖出股票。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解
代码语言:javascript复制class Solution {
public int maxProfit(int[] prices) {
if(prices.length <= 1) {
return 0;
}
int min = prices[0];
int max = 0;
for(int i = 1; i < prices.length; i ) {
max = Math.max(max, prices[i] - min);
min = Math.min(min, prices[i]);
}
return max;
}
}
小结
这里用第一天的价格作为最小值,以0作为最大值,然后从第二天开始遍历,计算每天最大获利及股票的最小值,最后得出最大收益。
doc
- 买卖股票的最佳时机