Skip to content
Miliya's Expedition
Go back

貪心演算法Greedy

在每一個步驟中選擇當下最好的選項

實例講解 - 找零錢

目前有的硬幣面額為 25、10、5、1,要找41元且優先使用面額最大的硬幣

回合數當下要找的零錢當下使用的最大面額剩餘要找的零錢
1412516
216106
3651
4110

總共需要四回,總共需要1枚25元、1枚10元、1枚5元、1枚1元

貪心演算法的使用時機

需要同時符合以下條件

1. 每次的選擇互相獨立,互不影響

每一步的局部的選擇結果不會影響後續的選擇

2. 找最優解

把大問題拆分成若干性質的小問題,每個小問題的最優解組合起來就是大問題的最優解

動態規劃的差別

動態規劃的核心思路跟貪心演算法類似,都是把大問題拆分成若干性質相似的小問題,從小問題的答案推導出大問題的答案

但是跟動態規劃的最大差別是,紀錄所有小問題的答案以確保最後取得大問題的最優答案

而貪心演算法的最後答案不一定是最好的答案


Share this post on:

Previous Post
滑動視窗Sliding Window
Next Post
【題目】找最大回文