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.

    Approach #1: backtracking. [C++]

    class Solution {
    public:
        int countArrangement(int N) {
            vector<int> path;
            
            for (int i = 1; i <= N; ++i) 
                path.push_back(i);
            
            return helper(N, path);
        }
        
    private:
        int helper(int n, vector<int> path) {
            if (n <= 0) return 1;
            int ans = 0;
            for (int i = 0; i < n; ++i) {
                if (path[i] % n == 0 || n % path[i] == 0) {
                    swap(path[i], path[n-1]);
                    ans += helper(n-1, path);
                    swap(path[i], path[n-1]);
                }
            }
            return ans;
        }
    };
    

      

    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    对scrapy经典框架爬虫原理的理解
    js的处理技巧
    网站登陆的两种方法
    scrapy批量下载图片
    [转]解决scrapy下载图片时相对路径转绝对路径的问题
    scrapy爬取西刺网站ip
    logging的使用方法
    scrapy中的response
    scrapy中的request
    scrapy.Spider的属性和方法
  • 原文地址:https://www.cnblogs.com/h-hkai/p/10354265.html
Copyright © 2011-2022 走看看