📅  最后修改于: 2023-12-03 14:56:22.232000             🧑  作者: Mango
这是一个用于计算在给定一组股票价格情况下的最大收益的 Javascript 程序。该程序使用贪心算法,时间复杂度为 O(n)。
function getMaxProfit(prices) {
let buyPrice = prices[0];
let sellPrice = prices[0];
for (let i = 1; i < prices.length; i++) {
if (prices[i] < buyPrice) {
buyPrice = prices[i];
sellPrice = prices[i]; // 重置卖出价格
} else if (prices[i] > sellPrice) {
sellPrice = prices[i];
}
}
return sellPrice - buyPrice;
}
const prices = [7, 1, 5, 3, 6, 4];
console.log(getMaxProfit(prices)); // 输出 5,即 5 - 1
该算法可以在一次遍历内完成股票买卖的计算,时间复杂度为 O(n)。但该算法的前提是数组长度大于1,否则无法进行买卖操作。
注:该算法仅适用于单次买卖,如果需要进行多次买卖,则需要使用更为复杂的动态规划或贪心算法。