Simple Java dp solution 20 ms


  • 0
    B
    public int coinChange(int[] coins, int amount) {
            if(amount == 0)
            return amount;
            int[] dp = new int[amount +  1];
            Arrays.fill(dp,Integer.MAX_VALUE);
            dp[0] = 0;
            for(int coin: coins){
                for(int i = coin;i<=amount;i++){
                 if(dp[i - coin] != Integer.MAX_VALUE)
                 dp[i] = Math.min(dp[i-coin] + 1,dp[i]);
                }
            }
            
            return dp[amount] == Integer.MAX_VALUE ? -1:dp[amount];
        }
    

Log in to reply
 

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.