forked from doocs/leetcode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSolution2.py
21 lines (21 loc) · 880 Bytes
/
Solution2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution:
def numberOfStableArrays(self, zero: int, one: int, limit: int) -> int:
mod = 10**9 + 7
f = [[[0, 0] for _ in range(one + 1)] for _ in range(zero + 1)]
for i in range(1, min(limit, zero) + 1):
f[i][0][0] = 1
for j in range(1, min(limit, one) + 1):
f[0][j][1] = 1
for i in range(1, zero + 1):
for j in range(1, one + 1):
f[i][j][0] = (
f[i - 1][j][0]
+ f[i - 1][j][1]
- (0 if i - limit - 1 < 0 else f[i - limit - 1][j][1])
) % mod
f[i][j][1] = (
f[i][j - 1][0]
+ f[i][j - 1][1]
- (0 if j - limit - 1 < 0 else f[i][j - limit - 1][0])
) % mod
return sum(f[zero][one]) % mod