LeetCode LCP 07. 傳遞信息
小朋友 A 在和 ta 的小伙伴們玩?zhèn)餍畔⒂螒?,游戲?guī)則如下:
有 n 名玩家,所有玩家編號分別為 0 ~ n-1,其中小朋友 A 的編號為 0
每個(gè)玩家都有固定的若干個(gè)可傳信息的其他玩家(也可能沒有)。傳信息的關(guān)系是單向的(比如 A 可以向 B 傳信息,但 B 不能向 A 傳信息)。
每輪信息必須需要傳遞給另一個(gè)人,且信息可重復(fù)經(jīng)過同一個(gè)人
給定總玩家數(shù) n,以及按 [玩家編號,對應(yīng)可傳遞玩家編號] 關(guān)系組成的二維數(shù)組 relation。返回信息從小 A (編號 0 ) 經(jīng)過 k 輪傳遞到編號為 n-1 的小伙伴處的方案數(shù);若不能到達(dá),返回 0。
示例 1:
輸入:n = 5, relation = [[0,2],[2,1],[3,4],[2,3],[1,4],[2,0],[0,4]], k = 3
輸出:3
解釋:信息從小 A 編號 0 處開始,經(jīng) 3 輪傳遞,到達(dá)編號 4。共有 3 種方案,分別是 0->2->0->4, 0->2->1->4, 0->2->3->4。
示例 2:
輸入:n = 3, relation = [[0,2],[2,1]], k = 2
輸出:0
解釋:信息不能從小 A 處經(jīng)過 2 輪傳遞到編號 2
限制:
2 <= n <= 10
1 <= k <= 5
1 <= relation.length <= 90, 且 relation[i].length == 2
0 <= relation[i][0],relation[i][1] < n 且 relation[i][0] != relation[i][1]
這里面用DP做出來,還可以用DFS BFS做,但是還不會。
參照的是宮水三葉的想法,我還是得多學(xué)習(xí)啊,差的很遠(yuǎn)。
下面是代碼:
?
執(zhí)行用時(shí):0 ms, 在所有?Java?提交中擊敗了100.00%的用戶
內(nèi)存消耗:39 MB, 在所有?Java?提交中擊敗了65.84%的用戶
通過測試用例:28?/?28