1. 题目

假设有从 1 到 N 的 N 个整数,如果从这 N 个数字中成功构造出一个数组,使得数组的第 i 位 (1 <= i <= N) 满足如下两个条件中的一个,我们就称这个数组为一个优美的排列。条件:

  • 第 i 位的数字能被 i 整除
  • i 能被第 i 位上的数字整除

现在给定一个整数 N,请问可以构造多少个优美的排列?

示例1:
输入: 2
输出: 2
解释:
第 1 个优美的排列是 [1, 2]:第 1 个位置(i=1)上的数字是1,1能被 i(i=1)整除第 2 个位置(i=2)上的数字是2,2能被 i(i=2)整除
第 2 个优美的排列是 [2, 1]:第 1 个位置(i=1)上的数字是2,2能被 i(i=1)整除第 2 个位置(i=2)上的数字是1,i(i=2)能被 1 整除
说明:
N 是一个正整数,并且不会超过15。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/beautiful-arrangement
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 回溯

class Solution {public:int countArrangement(int N) {bool visited[N+1] = {false};//数字放过了吗int count = 0;bt(1,N,visited,count);return count;}void bt(int i, int &N, bool* visited, int &count){ // i 表示填到第几位了if(i == N+1){count++;return;}for(int num = 1; num <= N; ++num){if(!visited[num] && (num%i == 0 || i%num == 0)){visited[num] = true;bt(i+1, N, visited, count);visited[num] = false;}}}
};

LeetCode 526. 优美的排列(回溯)相关推荐

  1. Java实现 LeetCode 526 优美的排列(DFS)

    526. 优美的排列 假设有从 1 到 N 的 N 个整数,如果从这 N 个数字中成功构造出一个数组,使得数组的第 i 位 (1 <= i <= N) 满足如下两个条件中的一个,我们就称这 ...

  2. Leetcode 526.优美的排列 二进制状压DP

    题目链接:传送门 假设有从 1 到 N 的 N 个整数,如果从这 N 个数字中成功构造出一个数组,使得数组的第 i 位 (1 <= i <= N) 满足如下两个条件中的一个,我们就称这个数 ...

  3. LeetCode 526. 优美的排列

    原题目:https://leetcode-cn.com/problems/beautiful-arrangement/ 代码: class Solution {vector<bool> m ...

  4. leetcode 526优美的数列

    题目 leetcode 526优美的数列 假设有从 1 到 N 的 N 个整数,如果从这 N 个数字中成功构造出一个数组,使得数组的第 i 位 (1 <= i <= N) 满足如下两个条件 ...

  5. 力扣 -- 526. 优美的排列

    一.题目描述 假设有从 1 到 N 的 N 个整数,如果从这 N 个数字中成功构造出一个数组,使得数组的第 i 位 (1 <= i <= N) 满足如下两个条件中的一个,我们就称这个数组为 ...

  6. 递归-力扣-526. 优美的排列

    题目链接 优美的排列 假设有从 1 到 n 的 n 个整数.用这些整数构造一个数组 perm(下标从 1 开始),只要满足下述条件 之一 ,该数组就是一个 优美的排列 : perm[i] 能够被 i ...

  7. 526. 优美的排列

    假设有从 1 到 N 的 N 个整数,如果从这 N 个数字中成功构造出一个数组,使得数组的第 i 位 (1 <= i <= N) 满足如下两个条件中的一个,我们就称这个数组为一个优美的排列 ...

  8. Java实现 LeetCode 667 优美的排列 II(暴力)

    667. 优美的排列 II 给定两个整数 n 和 k,你需要实现一个数组,这个数组包含从 1 到 n 的 n 个不同整数,同时满足以下条件: ① 如果这个数组是 [a1, a2, a3, - , an ...

  9. leetcode 526. Beautiful Arrangement | 526. 优美的排列(回溯)

    题目 https://leetcode.com/problems/beautiful-arrangement/ 题解 首先分析,全排列一个一个试的话(如下图),时间复杂度O(n^2),当n=15时,总 ...

最新文章

  1. 安装numpy/scipy/scikit-learn的方法
  2. 大神程序员都懂英文翻译,而你却因英语不行遭拒?
  3. 与时间相关NSCalendar、NSDate类的基本使用
  4. scjp考试准备 - 11 - 类型转换2
  5. 【IEEE Transactions NNLS】DSAN: Deep Subdomain Adaptation Network for Image Classification译读笔记
  6. 南丁格尔邮票图片大全_【鉴赏】武夷山普通纪念币鉴赏(高清图片)
  7. HDU 6390 GuGuFishtion(莫比乌斯反演 + 欧拉函数性质 + 积性函数)题解
  8. 中兴2016笔试题答案Java_中兴笔试题和面试题答案与答案
  9. ubuntu linux修改ip地址命令,如何在ubuntu桌面通过命令行,更改ip地址
  10. 力扣第39题dfsdfs(respathtarget-candidates[1]i)#调用递归,组成目标的 i 可以重复用,不用i+1,def dfsdfs(resres,pathtarget,ind
  11. LDR2001电脑免驱USB转串口芯片方案
  12. 开咖啡店如何盈利?用50家咖啡店揭晓一套盈利模式
  13. gta5结局杀老崔我哭了_GTA5:每个主角都在故事里得到了自己想要的东西,但崔佛却是白给...
  14. 【前端前沿看点】React和Vue深度对比
  15. SpringBoot - Tomcat 容器 Spring 绿色叶子灰色解决方案
  16. 2022版使用云服务器搭建公网k8s容器集群
  17. 与亚马逊Amazon Device EDI进行测试都有哪些场景?
  18. Java - 文件下载输出到浏览器
  19. vue项目中,关于echarts报错:To install them, you can run: npm install --save echarts/lib/chart/bar…………
  20. Gaussian量子化学计算、LAMMPS分子动力学模拟

热门文章

  1. 怎么看cudnn的版本好_祖坟风水怎么看,好祖坟有什么征兆?
  2. 【设计模式 04】代理模式
  3. php表示私有变量的是,PHP 访问私有和受保护的成员变量
  4. android收入管理系统,毕业设计(论文)-基于Android系统的家庭理财通软件的设计——收入管理模块.docx...
  5. 字符设备驱动高级篇6——内核提供的读写寄存器接口
  6. 关于一些html和css2的知识点
  7. (五)uboot移植补基础之shell
  8. 云计算三种服务模式SaaS、PaaS和IaaS及其之间关系(顺带CaaS、MaaS)
  9. response.setContentType()的作用及MIME参数详解
  10. 四则运算个人项目进展