122. コイン
タイトルリンク
ソース:
リンク(LeetCode):https: //leetcode-cn.com/problems/coin-lcci
タイトルの説明
コイン。コインの数に制限がない場合、通貨の値は25ポイント、10ポイント、5ポイント、1ポイントです。nポイントを計算するコードを記述する方法はいくつかあります。(結果は大きくなる可能性があります。結果を1000000007に成形する必要があります)
例1:
入力:n = 5
出力:2
説明:合計金額を構成するには2つの方法があります:
5 = 5
5 = 1 + 1 + 1 + 1 + 1
例2:
入力:n = 10
出力:4
説明:合計金額を構成する方法は4つあります:
10 = 10
10 = 5 + 5
10 = 5 + 1 + 1 + 1 + 1 + 1
10 = 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1
説明:
注:
あなたは仮定することができます:
0 <= n(合計金額)<= 1000000
キーテクノロジー
動的プログラミング
トピック分析
- 新しい配列dpを作成します。dp[j]はj元を形成するのに必要なコインの最小数を表します。
- 状態遷移方程式:dp [j] = dp [j] + dp [j-coin [i]];
- 注:モジュロ1000000007。
/ ** * @param {数値} n * @return {数値} * / var wayToChange = function(n){ コイン= [1、5、10、25]; let dp = new Array(n + 1).fill(1); for(let i = 1; i <4; i ++){ for(let j = 1; j <= n; j ++){ if(j-coin [i]> = 0){ dp [j] =(dp [j] + dp [j-coin [i]])%1000000007; } } } dp [n]を返します。 };