|
28 | 28 | */
|
29 | 29 | public class _552 {
|
30 | 30 |
|
31 |
| - /**credit: https://discuss.leetcode.com/topic/86526/improving-the-runtime-from-o-n-to-o-log-n*/ |
32 |
| - public int checkRecord(int n) { |
33 |
| - final int MOD = 1000000007; |
34 |
| - int[][][] f = new int[n + 1][2][3]; |
35 |
| - |
36 |
| - f[0] = new int[][]{{1, 1, 1}, {1, 1, 1}}; |
37 |
| - for (int i = 1; i <= n; i++) { |
38 |
| - for (int j = 0; j < 2; j++) { |
39 |
| - for (int k = 0; k < 3; k++) { |
40 |
| - int val = f[i - 1][j][2]; // ...P |
41 |
| - if (j > 0) { |
42 |
| - val = (val + f[i - 1][j - 1][2]) % MOD; // ...A |
| 31 | + public static class Solution1 { |
| 32 | + /** |
| 33 | + * credit: https://discuss.leetcode.com/topic/86526/improving-the-runtime-from-o-n-to-o-log-n |
| 34 | + */ |
| 35 | + public int checkRecord(int n) { |
| 36 | + final int MOD = 1000000007; |
| 37 | + int[][][] f = new int[n + 1][2][3]; |
| 38 | + |
| 39 | + f[0] = new int[][]{{1, 1, 1}, {1, 1, 1}}; |
| 40 | + for (int i = 1; i <= n; i++) { |
| 41 | + for (int j = 0; j < 2; j++) { |
| 42 | + for (int k = 0; k < 3; k++) { |
| 43 | + int val = f[i - 1][j][2]; // ...P |
| 44 | + if (j > 0) { |
| 45 | + val = (val + f[i - 1][j - 1][2]) % MOD; // ...A |
| 46 | + } |
| 47 | + if (k > 0) { |
| 48 | + val = (val + f[i - 1][j][k - 1]) % MOD; // ...L |
| 49 | + } |
| 50 | + f[i][j][k] = val; |
43 | 51 | }
|
44 |
| - if (k > 0) { |
45 |
| - val = (val + f[i - 1][j][k - 1]) % MOD; // ...L |
46 |
| - } |
47 |
| - f[i][j][k] = val; |
48 | 52 | }
|
49 | 53 | }
|
| 54 | + return f[n][1][2]; |
50 | 55 | }
|
51 |
| - return f[n][1][2]; |
52 | 56 | }
|
53 | 57 |
|
54 | 58 | }
|
0 commit comments