在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ Your music player contains
Return the number of possible playlists. As the answer can be very large, return it modulo Example 1: Input: N = 1
Output: 6
Explanation: There are 6 possible playlists. [1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1].
Example 2: Input: N = 0
Output: 6
Explanation: There are 6 possible playlists. [1, 1, 2], [1, 2, 1], [2, 1, 1], [2, 2, 1], [2, 1, 2], [1, 2, 2]
Example 3: Input: N = 1
Output: 2
Explanation: There are 2 possible playlists. [1, 2, 1], [2, 1, 2]
Note:
你的音乐播放器里有
返回可以满足要求的播放列表的数量。由于答案可能非常大,请返回它模 示例 1: 输入:N = 3, L = 3, K = 1 输出:6 解释:有 6 种可能的播放列表。[1, 2, 3],[1, 3, 2],[2, 1, 3],[2, 3, 1],[3, 1, 2],[3, 2, 1]. 示例 2: 输入:N = 2, L = 3, K = 0 输出:6 解释:有 6 种可能的播放列表。[1, 1, 2],[1, 2, 1],[2, 1, 1],[2, 2, 1],[2, 1, 2],[1, 2, 2] 示例 3: 输入:N = 2, L = 3, K = 1 输出:2 解释:有 2 种可能的播放列表。[1, 2, 1],[2, 1, 2] 提示:
56 ms 1 class Solution { 2 func numMusicPlaylists(_ N: Int, _ L: Int, _ K: Int) -> Int { 3 var mod:Int = 1000000007 4 var dp = Array(repeating:0, count: N+1) 5 dp[0] = 1 6 for i in 0..<L 7 { 8 var ndp = Array(repeating:0, count: N+1) 9 for j in 0..<N 10 { 11 ndp[j + 1] += dp[j] * (N-j) 12 ndp[j + 1] %= mod 13 } 14 for j in 0...N 15 { 16 ndp[j] += dp[j] * max(j - K, 0) 17 ndp[j] %= mod 18 } 19 dp = ndp 20 } 21 return Int(dp[N]) 22 } 23 } |
请发表评论