https://leetcode-cn.com/problems/beautiful-arrangement/
假设有从 1 到 n 的 n 个整数。用这些整数构造一个数组 perm(下标从 1 开始),只要满足下述条件 之一 ,该数组就是一个 优美的排列 :
perm[i] 能够被 i 整除
i 能够被 perm[i] 整除
给你一个整数 n ,返回可以构造的 优美排列 的 数量 。
数据很小,暴力搜。
class Solution {
public:
int num;
int cnt = 0;
bool used[17];
int countArrangement(int n) {
num = n;
for (int i = 0; i < 17; i++) used[i] = 0;
get(1);
return cnt;
}
void get(int dep) {
for (int i = 1; i <= num; i++) {
if ((!used[i])&&((!(dep%i))||(!(i%dep)))) {
if (dep == num) {
cnt++;
continue;
}
else {
used[i] = 1;
get(dep+1);
used[i] = 0;
}
}
}
}
};