面試演算法題 動態規劃和貪心演算法的區別

2021-10-05 13:14:12 字數 296 閱讀 3427

首先動態規劃和貪心都是用來解決問題的,我們用q(n)來表示所要解決的總規模為n的問題的集合,我們的最終結果就是要選出乙個子集a(n)

對於動態規劃來說,要解決q(n),首先要解決a(1)、a(2)、......a(n - 1),a(n)此時是在的某個子集的基礎上得到的。

而對於貪心來說,我們能夠從這個待解決的問題上得到一種更緊的條件, 使得在每一步a(k)我們總能從q(n)的剩餘元素中找到乙個在加入到a(k)中後,使得我們找到了a(k + 1)的最優解,而這點對於動態規劃是無能為力的。

總結來說:

動態規劃和貪心演算法

動態規劃 通過組合子問題的解來求解原問題,常用來求解最優化問題。常用來解決以下幾類問題,但不是說遇到類似問題必須用動態規劃來解決,可以往這方面去想 1.計數問題,如有多少種方式走到右下角,有多少種方法選出k個數使得和是sum 2.求最大最小值,如從左上角走到右下角路徑的最大數字和 3.求存在性,如取...

貪心演算法和動態規劃

貪心演算法 在求解問題時,總是做出在當前看來做好的選擇,所以它是區域性最優解,試圖通過區域性最優推出全域性最優。需要注意的是貪心演算法沒有固定的演算法框架,演算法設計的關鍵是選擇貪心策略,其必須具備無後效性,即某個狀態以後的過程不會影響以前的狀態,只與當前狀態有關。常見的用貪心演算法解決的問題,比如...

貪心演算法 and 動態規劃

動態規劃dynamic programming 貪心演算法,又名貪婪法,是尋找最優解問題的常用方法 步驟1 從某個初始解出發 步驟2 採用迭代的過程,當可以向目標前進一步時,就根據區域性最優策略,得到一部分解,縮小問題規模 步驟3 將所有解綜合起來。假設你開了間小店,不能電子支付,錢櫃裡的貨幣只有 ...