给定一个数组 `prices` ,它的第 `i` 个元素 `prices[i]` 表示一支给定股票第 `i` 天的价格。
你只能选择 **某一天** 买入这只股票,并选择在 **未来的某一个不同的日子** 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 `0` 。
写了一个版本的解决方案,提交提示“超出时间限制”,直接看答案吧
/**
* @param {number[]} prices
* @return {number}
*/
var maxProfit = function(prices) {
let minDay = Infinity;
let maxProfit = 0;
for(let i = 0; i < prices.length; i++){
let current = prices[i];
minDay = Math.min(minDay, current);
maxProfit = Math.max(maxProfit, current - minDay);
}
return maxProfit;
};
维护了一个最大值,和当前已知的最小值,一次循环解决问题;(买个锤锤的股票!!)