zoukankan      html  css  js  c++  java
  • 526. Beautiful Arrangement 美丽排列

    Suppose you have N integers from 1 to N. We define a beautiful arrangement as an array that is constructed by these N numbers successfully if one of the following is true for the ith position (1 <= i <= N) in this array:

    1. The number at the ith position is divisible by i.
    2. i is divisible by the number at the ith position.

    Now given N, how many beautiful arrangements can you construct?

    Example 1:

    Input: 2
    Output: 2
    Explanation:
    The first beautiful arrangement is [1, 2]:
    Number at the 1st position (i=1) is 1, and 1 is divisible by i (i=1).
    Number at the 2nd position (i=2) is 2, and 2 is divisible by i (i=2).
    The second beautiful arrangement is [2, 1]:
    Number at the 1st position (i=1) is 2, and 2 is divisible by i (i=1).
    Number at the 2nd position (i=2) is 1, and i (i=2) is divisible by 1.

    Note:

    1. N is a positive integer and will not exceed 15.

    如果整数1到N的排列,第i个数满足下列规则之一,则称该排列为“美丽排列”

    1. 第i个位置的数字可以被i整除
    2. i可以被第i个位置的数字整除

    给定数字N,求有多少个美丽排列

    1. class Solution(object):
    2. def countArrangement(self, N):
    3. if N == 0:
    4. return 0
    5. nums = [0 for x in range(0,N+1)]
    6. return self.helper(N,1,nums)
    7. def helper(self,N,pos,used):
    8. if pos > N:
    9. return 1
    10. num = 0
    11. for i in range(1,N+1):
    12. if used[i] == 0 and (i%pos==0 or pos%i==0):
    13. used[i] = 1
    14. num += self.helper(N,pos+1,used)
    15. used[i] = 0
    16. return num

    1. class Solution(object):
    2. def countArrangement(self, N):
    3. """
    4. :type N: int
    5. :rtype: int
    6. """
    7. return [0, 1, 2, 3, 8, 10, 36, 41, 132, 250, 700, 750, 4010, 4237, 10680, 24679][N]






  • 相关阅读:
    ls: cannot open directory .: Permission denied
    postman报错:Could not get any response
    IO流的继承关系
    吸顶效果
    linux报错:ls command not found
    内存寻址能力与CPU的位宽有关系吗?
    CPU与内存
    SQL语言的分类
    32位CPU和64位CPU 区别
    linux添加环境变量
  • 原文地址:https://www.cnblogs.com/xiejunzhao/p/7613076.html
Copyright © 2011-2022 走看看