(十四)算法设计思想之“贪心算法”
生活随笔
收集整理的這篇文章主要介紹了
(十四)算法设计思想之“贪心算法”
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
算法設計思想之“貪心算法”
- 貪心算法是什么
- LeetCode:455.分餅干
- LeetCode:122.買賣股票的最佳時機II
- 思考題
貪心算法是什么
貪心算法是算法設計中的一種方法
期盼通過每個階段的局部最優選擇,從而達到全局的最優
結果并不一定是最優
LeetCode:455.分餅干
解題思路
局部最優:既能滿足孩子,還消耗最少
先將“較小的餅干”分給“胃口最小”的孩子
解題步驟
對餅干數組和胃口數組升序排序
遍歷餅干數組,找到能滿足第一個孩子的餅干
然后繼續遍歷餅干數組,找到滿足第二、第三、…、n個孩子的餅干
時間復雜度O(n * logN),空間復雜度O(1)
LeetCode:122.買賣股票的最佳時機II
解題思路
前提:上帝視角,知道未來的價格
局部最優:較好就收,見差就不動,不做任何長遠打算
解題步驟
新建一個變量,用來統計總利潤
遍歷價格數組,如果當前價格比昨天高,就在昨天買,今天賣,否則不交易
遍歷結束后,返回所有利潤之和
時間復雜度O(n ),空間復雜度O(1)
思考題
1、說出貪心算法的套路步驟。
2、貪心算法總能求的最優解嗎?為什么?
總結
以上是生活随笔為你收集整理的(十四)算法设计思想之“贪心算法”的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 王者荣耀点券怎么退回
- 下一篇: (十五)算法设计思想之“回溯算法”