아름답게 배치 leetcode-526

아름답게 배치 leetcode-526

주제 설명 :

1부터 N까지 N 정수가있는 가정 성공적 배열 이러한 배열을 구성하는 경우이 N 번호 해당 비트 I (1 <= I는 = N <)을 만족하는 다음의 두 가지 조건 중 하나, 우리 이 배열은 아름다운 배열이라고합니다. 조건 :의 I 비트 수의 i 번째 위치에 디지털 나눌 나는 구축 할 수있는 방법을 많은 아름다운 배열 요청할 수 있습니다, 지금은 정수 N 부여 할 수 내가로 나눌 수있다?

이 질문에 이동 유형의 인쇄 문제로 leetcoder 1079

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

추천

출처www.cnblogs.com/curtisxiao/p/11299199.html