1
2
3
4
5
6
7
8
9
10
| class Solution:
def findDerangement(self, n: int) -> int:
MOD = 10**9 + 7
derangements = [0] * (n + 1)
derangements[0], derangements[1] = 1, 0
for i in range(2, n + 1):
derangements[i] = ((i - 1) * (derangements[i - 1] + derangements[i - 2])) % MOD
return derangements[n]
|