Number of Distinct Roll Sequences LeetCode solution in Java

1
class Solution {
2
static long[][] dp;
3

4
public int distinctSequences(int n) {
5
if (n == 1) return 6;
6
int mod = 1_000_000_007;
7
dp =
8
new long[][] {
9
{0, 1, 1, 1, 1, 1},
10
{1, 0, 1, 0, 1, 0},
11
{1, 1, 0, 1, 1, 0},
12
{1, 0, 1, 0, 1, 0},
13
{1, 1, 1, 1, 0, 1},
14
{1, 0, 0, 0, 1, 0}
15
};
16
for (int i = 2; i < n; i++) {
17
long[][] temp = new long[6][6];
18
for (int j = 0; j < 6; j++) {
19
for (int k = 0; k < 6; k++) {
20
long total = 0;
21
if (dp[j][k] == 0) continue;
22
for (int l = 0; l < 6; l++) {
23
total = (total + ((l == k) ? 0 : dp[l][j])) % mod;
24
}
25
temp[j][k] = total;
26
}
27
}
28
dp = temp;
29
}
30
long result = 0;
31
for (int i = 0; i < 6; i++) {
32
for (int j = 0; j < 6; j++) {
33
result = (result + dp[i][j]) % mod;
34
}
35
}
36
return (int) (result);
37
}
38
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0