技術問答
技術文章
iT 徵才
聊天室
2025 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2025 iThome 鐵人賽
DAY
12
0
自我挑戰組
從零開始學習LeetCode
系列 第
12
篇
Day 12:Best Time to Buy and Sell Stock
17th鐵人賽
pinggg
2025-09-26 21:53:37
86 瀏覽
分享至
題目:給定一個整數陣列 prices,其中第 i 個元素代表股票在第 i 天的價格。
你只能 選擇一天買入,並且 選擇未來某一天賣出,求最大獲利。
如果無法獲利,回傳 0。
解法一
列舉所有買賣組合
大數據會超時
註解:
雙層迴圈,嘗試所有「買入、賣出」組合
記錄最大獲利
理解:
就像模擬「所有可能的買賣組合」,最後挑一個最賺的
解法二
記錄最低價 + 計算獲利
效率最高
註解:
min_price:用來追蹤目前最低的買入價
每次走訪 price,計算「今天賣出」能不能刷新最大獲利
時間複雜度:O(n),只需一次遍歷
理解:
就像每天觀察股價,先記住歷史最低價,再看今天賣出的話能賺多少
解法三
用陣列記錄每天最大獲利
本質和單次遍歷相同,但更偏向「每天更新最佳答案」的寫法
註解:
dp[i]:第 i 天的最大獲利
每天更新「歷史最低價」與「目前最大獲利」
本質上和方法二一樣,但寫法更符合 DP 思維
理解:
就像每天記錄「到今天為止的最佳交易結果」,一步一步累積出答案
留言
追蹤
檢舉
上一篇
Day 11 Intersection of Two Arrays II
下一篇
Day 13:Best Time to Buy and Sell Stock II
系列文
從零開始學習LeetCode
共
30
篇
目錄
RSS系列文
訂閱系列文
0
人訂閱
26
Day 26 Valid Parentheses
27
Day 27 Longest Common Prefix
28
Day 28 Valid Palindrome
29
Day29 First Unique Character in a String
30
Day30 總結
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
19856
篇
完賽人數
528
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
17th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
react
熱門問題
Gem如何找到該功能?!我是Gemini付費使用者
中華電信光纜當骨幹...SWminigbic無法正常使用
我在做 packet tracer 的題目,想請問一下該怎麼做
dhcp 在client 端機碼設定的問題
照片破圖或是有損壞,如何修復?
熱門回答
防火牆fortinet只開放line 問題
中華電信光纜當骨幹...SWminigbic無法正常使用
我在做 packet tracer 的題目,想請問一下該怎麼做
dhcp 在client 端機碼設定的問題
熱門文章
Agentic AI 開發實戰:我是如何設計 “Code + LLM” 混合架構,解決 AI品質不穩的問題?
[gem5] 該怎麼編譯以及運行 gem5 ?
讓人受益終身的 9 種數據分析思維
【C++學習筆記】01《從零學習C++,跟世界打招呼吧!》
數位轉型是什麼?從定義、三階段到成功案例一次看懂
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}