1155. Number of Dice Rolls With Target Sum
1 | class Solution { |
如果最后一个骰子是1, 那我知道之前n - 1个骰子凑target - 1的种类个数就好了; 如果最后一个骰子是2, 那我知道之前n - 1个骰子凑target - 2的种类个数就好了… 一次类推. dp[n][m] = sum(dp[n - 1][m - 1] + dp[n - 1][m - 2] + … + dp[n - 1][m - k])
需要注意的是, dp[0][0]的值是1, 因为如果按照我们的逻辑dp[1][1]就要看dp[0][0]是多少, 我们知道1个骰子凑1肯定只有一种, 因此为了满足我们的逻辑dp[0][0] == 1. 但是之后的每行第0个位置就是0, 因为当骰子数目大于等于1的时候, 是无法凑成0的.
时间复杂度: O(n * target * k)
空间复杂度: O(n * target)