一看題目就知道這題是很水的 DP 題,所以想當然在解的時候就直接 DP Bottom-Up 就可以快樂的 AC 掉了
但這邊有一個值得注意的地方就是如何判斷是否有解,我當初在測試的時候有稍微卡了一下下,因為我原本想說如果等於我預設的最大值的話就直接輸出無解,但後來發現這樣行不通,因為有時候答案可能剛好就是預設的最大值😅,對此我換了一個寫法
我把它寫成 if( i == x && dp[i-coins[j]] + 1 < dp[i] )
這樣的話只有當 且可以 Update dp 裡面的值的時候我才正常輸出(因為可以 Update 就代表這個值至少有一組解),否則無解,這樣一來就可以正常判斷答案了