-
Notifications
You must be signed in to change notification settings - Fork 103
Expand file tree
/
Copy pathCoinChange.java
More file actions
36 lines (32 loc) · 848 Bytes
/
CoinChange.java
File metadata and controls
36 lines (32 loc) · 848 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/**
*
*/
package com.javaaid.ip.spraoi;
import java.util.Arrays;
import java.util.List;
/**
* @author Kanahaiya Gupta
*
*/
public class CoinChange {
public static void main(String[] args) {
Integer actual = CoinChange.countChange(4,Arrays.asList(1,2));
System.out.println(actual);
}
public static Integer countChange( Integer money,List<Integer> coins ) {
int noOfcoins=coins.size();
return countNumberOfWays(coins,noOfcoins,money);
}
/**
* @param coins
* @param noOfcoins
* @param money
* @return
*/
private static Integer countNumberOfWays(List<Integer> coins, int noOfcoins, Integer money) {
if(money==0)return 1;
if(money<0)return 0;
if(noOfcoins<=0 && money>=1)return 0;
return countNumberOfWays(coins,noOfcoins-1,money)+countNumberOfWays(coins,noOfcoins,money-coins.get(noOfcoins-1));
}
}