[TS LeetCode] 121. Best Time to Buy and Sell Stock

更新 發佈閱讀 2 分鐘


題目摘要

給定一個陣列 prices,其中 prices[i] 代表第 i 天的股票價格。你希望透過在某一天購買一股股票,並在未來的某一天賣出它,以最大化你的利潤。如果無法獲得任何利潤,則返回 0。

題目知識點

  • 利潤最大化
  • Math.min() 和 Math.max() 函數的應用


先備知識

在理解此問題之前,應具備以下知識:

  • 陣列的基本操作
  • 簡單的迴圈和條件語句


應用情境

這個問題模擬了股票交易的情境,特別是在開發股票交易網頁應用程式時可能會用到。以下是一些可能的應用情境:

  1. 股票交易平台: 在一個股票交易平台的網頁應用中,你可以使用這個演算法幫助用戶找到最佳買入和賣出時機,以最大化他們的利潤。
  2. 投資組合管理工具: 用於投資組合管理的網頁應用可以使用這個演算法來計算不同股票的最佳交易策略,以幫助投資者做出明智的決策。
  3. 教育平台: 在股票市場教育課程中,可以使用這個問題來教授如何選擇最佳的買賣時機,並最大化投資利潤。
  4. 量化交易策略: 用於自動交易的算法可能使用這個演算法來執行買入和賣出決策。


結論

這個問題要求你找到一天買入股票並在未來某一天賣出以獲得最大利潤。解決這個問題的關鍵在於維護一個最低的購買價格,同時計算每一天賣出時的潛在利潤,最終返回最大利潤。

這個問題適用於股票交易相關的應用,並可幫助用戶制定投資策略,以達到最大化利潤的目標。程式碼中使用了 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;
};
留言
avatar-img
留言分享你的想法!
avatar-img
毛怪的沙龍
3會員
8內容數
"TypeScript LeetCode" 以 TypeScript 為工具,深入解析 LeetCode 上的算法和資料結構問題,提供清晰解釋和程式碼示範,幫助您精進 TypeScript 技能,解決挑戰性問題,無論您的程式開發水平如何。讓我們一同鑽研、提升,迎接算法挑戰,成長技術專長!,快速提高您的技能水平
毛怪的沙龍的其他內容
2023/10/19
題目摘要 給定一個整數陣列 `prices`,其中 `prices[i]` 代表第 `i` 天的股票價格。在每一天,你可以決定買入和/或賣出股票。然而,你同一時間只能擁有至多一股股票。你可以在同一天內買入然後立刻賣出股票。找出並返回你可以實現的最大利潤。
Thumbnail
2023/10/19
題目摘要 給定一個整數陣列 `prices`,其中 `prices[i]` 代表第 `i` 天的股票價格。在每一天,你可以決定買入和/或賣出股票。然而,你同一時間只能擁有至多一股股票。你可以在同一天內買入然後立刻賣出股票。找出並返回你可以實現的最大利潤。
Thumbnail
2023/10/16
題目摘要: 在這篇文章中,我們將討論如何使用摩爾投票算法找出一個陣列中的「主要元素」。主要元素指的是在陣列中出現次數超過一半的元素,並且我們可以確定它一定存在於陣列中。這個算法的核心思想和應用將在本文中被詳細介紹。 題目知識點: 主要元素的定義和重要性。 摩爾投票算法的工作原理和優點。 先備知識
Thumbnail
2023/10/16
題目摘要: 在這篇文章中,我們將討論如何使用摩爾投票算法找出一個陣列中的「主要元素」。主要元素指的是在陣列中出現次數超過一半的元素,並且我們可以確定它一定存在於陣列中。這個算法的核心思想和應用將在本文中被詳細介紹。 題目知識點: 主要元素的定義和重要性。 摩爾投票算法的工作原理和優點。 先備知識
Thumbnail
2023/10/12
重要知識點: 1. TypeScript 全局擴展,使所有陣列都能使用 groupBy 方法。 2. 利用泛型創建彈性函數,提高代碼可重用性。 3. 迭代陣列中的元素,實現遍歷和處理功能。 4. 物件的鍵值對操作,用於建立以函數輸出為鍵的物件。
Thumbnail
2023/10/12
重要知識點: 1. TypeScript 全局擴展,使所有陣列都能使用 groupBy 方法。 2. 利用泛型創建彈性函數,提高代碼可重用性。 3. 迭代陣列中的元素,實現遍歷和處理功能。 4. 物件的鍵值對操作,用於建立以函數輸出為鍵的物件。
Thumbnail
看更多
你可能也想看
Thumbnail
大家好,我是小股民Gumin,個人分析,請斟酌參考 想多學一點觀念可以申請小股民的社團唷~ https://www.cmoney.tw/forum/club/4064 小股民今天想要跟大家探討,買股票容易,但賣股票呢? 我要在哪個地方選擇出場,不管是停損還是獲利,要怎麼判
Thumbnail
大家好,我是小股民Gumin,個人分析,請斟酌參考 想多學一點觀念可以申請小股民的社團唷~ https://www.cmoney.tw/forum/club/4064 小股民今天想要跟大家探討,買股票容易,但賣股票呢? 我要在哪個地方選擇出場,不管是停損還是獲利,要怎麼判
Thumbnail
題目會給我們一個陣列prices,裡面的數值代表每一個交易日的股票股價。 題目給我們一次做多的機會,也就是A交易日買進,B交易日賣出,請問最大獲利是多少?(此處不需要考慮現實面的交易稅、手續費...等因素) 如果無法獲利,則題目要求return 0。
Thumbnail
題目會給我們一個陣列prices,裡面的數值代表每一個交易日的股票股價。 題目給我們一次做多的機會,也就是A交易日買進,B交易日賣出,請問最大獲利是多少?(此處不需要考慮現實面的交易稅、手續費...等因素) 如果無法獲利,則題目要求return 0。
Thumbnail
上一篇文章 說明了不要讓單一標的大跌對整體部位造成毀滅性傷害,必要且有效的方法就是將資金分散到多個標的,也就是投資組合。因為看錯標的不見得會受傷,受傷的原因是看錯又重壓,而加槓重壓則造成完全毀滅。標的的選擇和比重的設定這是不同的功課,必須逐步拆解,基礎打穩後再加入擇時因子分析以伸縮部位,無法一蹴可及
Thumbnail
上一篇文章 說明了不要讓單一標的大跌對整體部位造成毀滅性傷害,必要且有效的方法就是將資金分散到多個標的,也就是投資組合。因為看錯標的不見得會受傷,受傷的原因是看錯又重壓,而加槓重壓則造成完全毀滅。標的的選擇和比重的設定這是不同的功課,必須逐步拆解,基礎打穩後再加入擇時因子分析以伸縮部位,無法一蹴可及
Thumbnail
題目摘要 給定一個整數陣列 `prices`,其中 `prices[i]` 代表第 `i` 天的股票價格。在每一天,你可以決定買入和/或賣出股票。然而,你同一時間只能擁有至多一股股票。你可以在同一天內買入然後立刻賣出股票。找出並返回你可以實現的最大利潤。
Thumbnail
題目摘要 給定一個整數陣列 `prices`,其中 `prices[i]` 代表第 `i` 天的股票價格。在每一天,你可以決定買入和/或賣出股票。然而,你同一時間只能擁有至多一股股票。你可以在同一天內買入然後立刻賣出股票。找出並返回你可以實現的最大利潤。
Thumbnail
題目摘要 給定一個陣列 prices,其中 prices[i] 代表第 i 天的股票價格。你希望透過在某一天購買一股股票,並在未來的某一天賣出它,以最大化你的利潤。如果無法獲得任何利潤,則返回 0。
Thumbnail
題目摘要 給定一個陣列 prices,其中 prices[i] 代表第 i 天的股票價格。你希望透過在某一天購買一股股票,並在未來的某一天賣出它,以最大化你的利潤。如果無法獲得任何利潤,則返回 0。
Thumbnail
剛好今天跟朋友出門,有討論到選股部分,想說就把我自己選股規則放上來給大家參考,也歡迎大家提問或反駁,互相漏氣求進步。 首先就是進入Goodinfo,註冊之後進去類股一覽,自訂篩選,條件設完可以儲存,反正就是跑初步篩選的股票出來,然後匯出成excel,再套進去自己設定的第二次篩選模組,第三次篩選模組
Thumbnail
剛好今天跟朋友出門,有討論到選股部分,想說就把我自己選股規則放上來給大家參考,也歡迎大家提問或反駁,互相漏氣求進步。 首先就是進入Goodinfo,註冊之後進去類股一覽,自訂篩選,條件設完可以儲存,反正就是跑初步篩選的股票出來,然後匯出成excel,再套進去自己設定的第二次篩選模組,第三次篩選模組
Thumbnail
背景: 以下僅為個人經驗分享,本人對於很多股票概念其實很多不懂,很多專有名詞什麼率什麼率等等也常不懂,但還是透過以下方式成功”小獲利”,所以大家可參考參考不滿意就笑笑滑過就好,若覺有幫助可試看看 個人分享要從股票賺錢,只能分為兩部分: 配的股利,股息 股價價差 這次主要針對如何做到價差達到2
Thumbnail
背景: 以下僅為個人經驗分享,本人對於很多股票概念其實很多不懂,很多專有名詞什麼率什麼率等等也常不懂,但還是透過以下方式成功”小獲利”,所以大家可參考參考不滿意就笑笑滑過就好,若覺有幫助可試看看 個人分享要從股票賺錢,只能分為兩部分: 配的股利,股息 股價價差 這次主要針對如何做到價差達到2
Thumbnail
股市裡充斥著各式各樣的騙子,只有『成交量』是唯一的例外。華爾街名言 文章重點整理 1. 看懂價量關係,掌握對的時機,成功就在不遠處。 2. 那些有關股價上漲下跌,很多投資人都知道的小秘密。 3. 瞭解橫盤震盪階段支撐和壓力。 4. 不同量價組合,各種量價組合的實例分析。
Thumbnail
股市裡充斥著各式各樣的騙子,只有『成交量』是唯一的例外。華爾街名言 文章重點整理 1. 看懂價量關係,掌握對的時機,成功就在不遠處。 2. 那些有關股價上漲下跌,很多投資人都知道的小秘密。 3. 瞭解橫盤震盪階段支撐和壓力。 4. 不同量價組合,各種量價組合的實例分析。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News