아름답게 배치 leetcode-526
주제 설명 :
1부터 N까지 N 정수가있는 가정 성공적 배열 이러한 배열을 구성하는 경우이 N 번호 해당 비트 I (1 <= I는 = N <)을 만족하는 다음의 두 가지 조건 중 하나, 우리 이 배열은 아름다운 배열이라고합니다. 조건 :의 I 비트 수의 i 번째 위치에 디지털 나눌 나는 구축 할 수있는 방법을 많은 아름다운 배열 요청할 수 있습니다, 지금은 정수 N 부여 할 수 내가로 나눌 수있다?
class Solution:
def countArrangement(self, N: int) -> int:
flags = [0]*(N+1)
self.res = 0
self.dfs(list(range(N+1)),1,flags)
return self.res
def dfs(self,nums,index,flags):
if len(nums) < index+1:
self.res += 1
return
for i in range(1,len(nums)):
if flags[i]==0 and (index%i == 0 or i%index == 0):
flags[i] = 1
self.dfs(nums,index+1,flags)
flags[i] = 0