[LeetCode] 322コインの変更変更交換

トピック:


 ただ、タイトルを見て、タイムアウトを知ることが可能であるが、すべての可能性を使い果たし、DFSを使用したと考えるのが自然であるが、それでも...本当に残業行います

その問題に対する解決策、特に明確な動的プログラミング(ボトムアップ)を読み取ります

分析:

F(i)の定義が必要とされる組成物Iのドルの最小数を表します

だから、

F(0)= 0

究極の目標は、F(量)を得ることです

異なる状態間の遷移式である    F(I)=分(F.(CJ-I))+ 10 = <J <coins.size()   硬貨の金種の値のj番目Cjの代表、そこIもし-cj <0、単に無視

F.(I)を探しているときに、唯一のあなたは私が知られており、それが計算できるようになるまで、各F(I-Cjの)、およびF(I-Cjのを)知っている必要があります

コード:

クラス解決{
 パブリック
    INT coinChange(ベクトル< INT >&コイン、int型の量){ 
        ベクトル< INT > F(量+ 1 、量)。
        F [ 0 ] = 0 ;
        以下のためにINT iが= 1 ; I <=量; I ++ ){
             int型 CUR = INT_MAX。
            INT J = 0 ; J <coins.size(); J ++ ){
                 場合(I-コイン[J] < 0続行;
                そう であれば(F [I-コイン[J]]> = 0 && CUR> F [I-コイン[J])CUR = F [I-コイン[J]] + 1 
            } 
            F [I] = CUR == INT_MAX - ?1 :CUR。
        } 
        戻りF [量]。
    } 
}。

 

おすすめ

転載: www.cnblogs.com/ech2o/p/12445190.html