iT邦幫忙

2025 iThome 鐵人賽

0
自我挑戰組

Java × LeetCode-30天日記系列 第 24

Day 24:Coin Change (LeetCode #322)

  • 分享至 

  • xImage
  •  

題目理解
我的理解 : 給定硬幣種類與目標金額,問最少要用幾枚硬幣能湊出該金額。若無法湊出,回傳 -1。
方法

  • 狀態定義:dp[i] = 湊出金額 i 所需最少硬幣數。
  • 轉移方程:
    dp[i] = min(dp[i], dp[i - coin] + 1)
    → 「用一枚面額 coin,從金額 i - coin 轉移過來」
  • 初始化:
    dp[0] = 0(湊出 0 元不用硬幣)
    其他都設成不可能值(amount+1)

https://ithelp.ithome.com.tw/upload/images/20251012/20169238Iz71unTUob.png

心得
動態規劃就像蓋房子,先打好地基(小問題),再一層層往上蓋(大問題)。


上一篇
Day 23:House Robber (LeetCode #198)
下一篇
Day 25 — Maximum Depth of Binary Tree (LC #104)
系列文
Java × LeetCode-30天日記30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言