給定一個陣列 prices
,其中 prices[i]
代表第 i
天的股票價格。你希望透過在某一天購買一股股票,並在未來的某一天賣出它,以最大化你的利潤。如果無法獲得任何利潤,則返回 0。
在理解此問題之前,應具備以下知識:
這個問題模擬了股票交易的情境,特別是在開發股票交易網頁應用程式時可能會用到。以下是一些可能的應用情境:
這個問題要求你找到一天買入股票並在未來某一天賣出以獲得最大利潤。解決這個問題的關鍵在於維護一個最低的購買價格,同時計算每一天賣出時的潛在利潤,最終返回最大利潤。
這個問題適用於股票交易相關的應用,並可幫助用戶制定投資策略,以達到最大化利潤的目標。程式碼中使用了 Math.min()
和 Math.max()
函數,這些函數有助於簡化比較和計算的邏輯。
function maxProfit(prices: number[]): number {
let minBuyPrice: number = prices[0];
let maxProfit: number = 0;
for (let i = 1; i < prices.length; i++) {
minBuyPrice = Math.min(minBuyPrice, prices[i]);
maxProfit = Math.max(maxProfit, prices[i] - minBuyPrice)
}
return maxProfit;
};