i am not able to write top down dp
please help;
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
int total=sc.nextInt();
int n=sc.nextInt();
int coins[]=new int[n];
int min=Integer.MAX_VALUE;
int max=Integer.MIN_VALUE;
for(int i=0;i<n;i++){
coins[i]=sc.nextInt();
max=Math.max(max,coins[i]);
min=Math.min(min,coins[i]);
}
System.out.println(f(total,coins.length-1,coins));
}
static int f(int total,int i,int[] coins){
if(total<0)
return 0;
if(total==0)
return 1;
if(i<0)
return 0;
return f(total-coins[i],i,coins)+f(total,i-1,coins);
}
}