題目
思路
- 最直覺的想法是從頭開始 traverse array,針對每一個 price 都去算一次那個位置之後的所有可能利潤,不過這樣會是兩個巢狀 for-loop,時間複雜度是 O(n^2),太大了
- 有沒有辦法只 traverse 一次 array 就好?
- 利潤是由買價和賣價得出,知道最低買價和最高賣價就可以得出答案。有辦法設定這兩個變數,然後隨著 array traversal 不斷更新嗎?
- 可以把
最高賣價改成最大利潤,因為這個才是需回傳的答案
- 可以把
1 | def maxProfit(self, prices: List[int]) -> int: |