当前位置: 代码迷 >> 综合 >> Leetcode 1155. 掷骰子的N种方法(DAY 42) ---- 动态规划学习期
  详细解决方案

Leetcode 1155. 掷骰子的N种方法(DAY 42) ---- 动态规划学习期

热度:11   发布时间:2023-11-17 20:11:23.0

原题题目

在这里插入图片描述



代码实现(首刷自解)

int numRollsToTarget(int d, int f, int target){
    int** dp = (int**)malloc(sizeof(int*) * (d+1)),i,j,k,temp,maxnumber = 0;for(i=1;i<=d;i++){
    dp[i] = (int*)malloc(sizeof(int) * (target+1));memset(dp[i],0,sizeof(int) * (target+1));maxnumber += f;temp = fmin(target,maxnumber);for(j=i;j<=temp;j++){
    if(i==1){
    dp[i][j] = 1;continue;}for(k=1;j>k && k<=f;k++)dp[i][j] = (dp[i-1][j-k] + dp[i][j])% 1000000007;}}return dp[d][target];
}