Published 2024-06-06

11101. Coin Exchange

leetcode

function coinChange(coins, amount) {
    let dp = Array(amount + 1).fill(amount + 1);

    dp[0] = 0;

    for (let i = 1; i < dp.length; i++) {
        for (let n = 0; n < coins.length; n++) {
            const prevCoinIdx = i - coins[n];
            if (prevCoinIdx < 0) {
                continue;
            }
            dp[i] = Math.min(dp[i], dp[prevCoinIdx] + 1);
        }
        console.table(dp);
    }
    return dp[dp.length - 1];

}

// Test cases
const testCases = [
    { c: [1, 3, 5], a: 11,  expected: 3 },
];

testCases.forEach((test, index) => {
    const result = coinChange(test.c, test.a);
    console.log(`Test Case ${index + 1}: ${JSON.stringify(result) === JSON.stringify(test.expected) ? 'Passed' : 'Failed'} (Expected: ${JSON.stringify(test.expected)}, Got: ${JSON.stringify(result)})`);
});
© d)zharii. sitemap