Skip to content

Latest commit

 

History

History
28 lines (27 loc) · 4.94 KB

41-counting-change-combinations.md

File metadata and controls

28 lines (27 loc) · 4.94 KB

Problem:

Write a function that counts how many different ways you can make change for an amount of money, given an array of coin denominations. For example, there are 3 ways to give change for 4 if you have coins with denomination 1 and 2:

1+1+1+1, 1+1+2, 2+2.

The order of coins does not matter:

1+1+2 == 2+1+1

Also, assume that you have an infinite amount of coins.

Your function should take an amount to change and an array of unique denominations for the coins:

  countChange(4, [1,2]) // => 3
  countChange(10, [5,2,3]) // => 4
  countChange(11, [5,7]) //  => 0
  count_change(4, [1,2]) # => 3
  count_change(10, [5,2,3]) # => 4
  count_change(11, [5,7]) # => 0
  count_change(4, {1,2}) // => 3
  count_change(10, {5,2,3}) // => 4
  count_change(11, {5,7}) // => 0
  countChange 4 [1,2] -- => 3
  countChange 10 [5,2,3] -- => 4
  countChange 11 [5,7] -- => 0
  countChange(4, [1,2]) # => 3
  countChange(10, [5,2,3]) # => 4
  countChange(11, [5,7]) # => 0
  (count-change 4 [1,2]) ; => 3
  (count-change 10 [5,2,3]) ; => 4
  (count-change 11 [5,7]) ; => 0
  CountCombinations(4, new[] {1,2}) // => 3
  CountCombinations(10, new[] {5,2,3}) // => 4
  CountCombinations(11, new[] {5,7}) //  => 0

Solution