diff --git a/Dynamic Programing/coin_change_leetcode.cpp b/Dynamic Programing/coin_change_leetcode.cpp new file mode 100644 index 00000000..1334d258 --- /dev/null +++ b/Dynamic Programing/coin_change_leetcode.cpp @@ -0,0 +1,23 @@ +class Solution { +public: + const int N=1e4; + int dp[10010]; + int func(vector coins,int amount) + { + if(amount==0) return dp[amount]=0; + int ans=INT_MAX; + if(dp[amount]!=-1) return dp[amount]; + + for(int coin: coins){ + if(amount-coin>=0) + ans=min(ans+0ll ,func(coins,amount-coin)+1ll); + } + return dp[amount]=ans; + } + int coinChange(vector& coins, int amount) { + memset(dp,-1,sizeof(dp)); + + int ans=func(coins,amount); + return ans==INT_MAX ? -1: ans; + } +};