常考数据结构与算法:买卖股票的最好时机
生活随笔
收集整理的這篇文章主要介紹了
常考数据结构与算法:买卖股票的最好时机
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
假設你有一個數組,其中第?i?個元素是股票在第i?天的價格。
你有一次買入和賣出的機會。(只有買入了股票以后才能賣出)。請你設計一個算法來計算可以獲得的最大收益。
示例 1:
輸入: [8,1,5,3,7,4]輸出: 6解釋: 在第 2 天(股票價格 = 1)的時候買入,在第 5 天(股票價格 = 7)的時候賣出,最大利潤 = 7-1 = 5 。注意:利潤不能是 7-1 = 6, 因為賣出價格需要大于買入價格;同時,你不能在買入前賣出股票。
示例 2:
輸入: [9,6,5,2,1]輸出: 0解釋: 在這種情況下, 沒有交易完成, 所以最大利潤為0?
思路:從頭遍歷數組,找當前最小值,每當遇到更大數值,比較差值與原先最大獲利,遇到更小值,就更換min。
分析:時間復雜度O(n),空間復雜度O(1)。運行效率很高
?
?
總結
以上是生活随笔為你收集整理的常考数据结构与算法:买卖股票的最好时机的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常考数据结构与算法:查找第K大元素算法
- 下一篇: 常考数据结构与算法:在转动过的有序数组中