问题
例子
思路
-
方法1
-
方法2
$$$$
代码
//方法1
class Solution {
public double[] twoSum(int n) {
int[][] dp = new int[n+1][6*n+1];
//n~6*n 共有6n-n+1==5n+1
double[] res = new double[5*n+1];
for(int i=1; i<=6; i++){
dp[1][i]=1;
}
for(int i=2; i<=n; i++) {
for(int j=i; j<=6*i; j++) {
for(int k=1; k<=6; k++){
if(j>k)
dp[i][j]+=dp[i-1][j-k];
}
}
}
double all = Math.pow(6,n);
for(int i=n; i<=6*n; i++) {
res[i-n]=dp[n][i]/all;
}
return res;
}
}
//方法2