526. Beautiful Arrangement (Medium) - TengnanYao/daily_leetcode GitHub Wiki
class Solution:
def countArrangement(self, n: int) -> int:
nums = list(range(1, n + 1))
self.result = 0
def dfs(nums, cur):
if not nums:
self.result += 1
else:
n = len(cur)
for i, num in enumerate(nums):
if num % (n + 1) == 0 or (n + 1) % num == 0:
dfs(nums[ : i] + nums[i + 1 : ], cur + [num])
dfs(nums, [])
return self.result