# Min Number Of Coins For Change

![](https://3743232000-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHW2IQuh2PFpWJDvBz2FF%2Fuploads%2Fgit-blob-da4f978357a6d4bd2d84b5343cf18b36e1afb0a8%2FScreenshot%202023-01-22%20at%2023.21.20.png?alt=media)

* n, n

```jsx
function minNumberOfCoinsForChange(n, denoms) {
  denoms.sort((a, b) => a - b);
  const coins = new Array(n + 1).fill(Infinity);
  coins[0]= 0;

  for (const denom of denoms) {
    for (let i = 1; i < n + 1; i++) {
      if (denom > i) continue;
      coins[i] = Math.min(coins[i], coins[i - denom] + 1);
    }
  }

  return coins[n] === Infinity ? -1 : coins[n];
}

// Do not edit the line below.
exports.minNumberOfCoinsForChange = minNumberOfCoinsForChange;
```
