1155 擲骰子的n種方法

2021-09-29 21:56:56 字數 715 閱讀 3442

這裡有 d 個一樣的骰子,每個骰子上都有 f 個面,分別標號為 1, 2, ..., f。

我們約定:擲骰子的得到總點數為各骰子面朝上的數字的總和。

如果需要擲出的總點數為 target,請你計算出有多少種不同的組合情況(所有的組合情況總共有 f^d 種),模 10^9 + 7 後返回。

示例 1:

輸入:d = 1, f = 6, target = 3

輸出:1

示例 2:

輸入:d = 2, f = 6, target = 7

輸出:6

這是典型的動態規劃問題,需要儲存的二維陣列元素值為當前骰子數和可能投擲出的總點數,即dp[d][target]。而骰子的問題分為:

(1)骰子個數——第一層迴圈

(2)總點數——第二層迴圈

(3)最後只剩乙個骰子投出的那一面點數——第三層迴圈

public int numrollstotarget(int d, int f, int target) 

/*骰子數*/

時間複雜度o(d*target*f),額外空間複雜度o(d*target)

1155 擲骰子的N種方法

暑假刷題水題居多,多數都沒有什麼記錄的價值,不過還是有題目是有必要寫下來供自己以後複習的。先上一題前幾天寫的題目 1155.擲骰子的n種方法 這裡有 d 個一樣的骰子,每個骰子上都有 f 個面,分別標號為 1,2,f。我們約定 擲骰子的得到總點數為各骰子面朝上的數字的總和。如果需要擲出的總點數為 t...

1155 擲骰子的N種方法

這裡有 d 個一樣的骰子,每個骰子上都有 f 個面,分別標號為 1,2,f。我們約定 擲骰子的得到總點數為各骰子面朝上的數字的總和。如果需要擲出的總點數為 target,請你計算出有多少種不同的組合情況 所有的組合情況總共有 f d 種 模 10 9 7 後返回。示例 1 輸入 d 1,f 6,ta...

leetcode 1155 擲骰子的N種方法

這裡有 d dd 個一樣的骰子,每個骰子上都有 f ff 個面,分別標號為 1,2 f 1,2,f 1,2,f。我們約定 擲骰子的得到總點數為各骰子面朝上的數字的總和。如果需要擲出的總點數為 tar ge ttarget target 請你計算出有多少種不同的組合情況 所有的組合情況總共有 f df...