AcWing 80. Java dfs
原题链接
简单
作者:
还想听你的故事
,
2020-08-03 17:22:03
,
所有人可见
,
阅读 455
class Solution {
private int [][]cache;
public int[] numberOfDice(int n) {
List<Integer>list=new ArrayList<>();
cache=new int [100][11];
for(int i=n;i<=6*n;i++) list.add(dfs(i,n));
int []res=new int[list.size()];
for(int i=0;i<list.size();i++) res[i]=list.get(i);
return res;
}
private int dfs(int sum,int n){
if(sum<0) return 0;
if(n==0) return sum==0?1:0;
if(cache[sum][n]!=0) return cache[sum][n];
int res=0;
for(int i=1;i<=6;i++){
res+=dfs(sum-i,n-1);
}
cache[sum][n]=res;
return res;
}
}