LeetCode 526. 优美的排列(回溯)
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. 优美的排列(回溯)相关推荐
- Java实现 LeetCode 526 优美的排列(DFS)
526. 优美的排列 假设有从 1 到 N 的 N 个整数,如果从这 N 个数字中成功构造出一个数组,使得数组的第 i 位 (1 <= i <= N) 满足如下两个条件中的一个,我们就称这 ...
- Leetcode 526.优美的排列 二进制状压DP
题目链接:传送门 假设有从 1 到 N 的 N 个整数,如果从这 N 个数字中成功构造出一个数组,使得数组的第 i 位 (1 <= i <= N) 满足如下两个条件中的一个,我们就称这个数 ...
- LeetCode 526. 优美的排列
原题目:https://leetcode-cn.com/problems/beautiful-arrangement/ 代码: class Solution {vector<bool> m ...
- leetcode 526优美的数列
题目 leetcode 526优美的数列 假设有从 1 到 N 的 N 个整数,如果从这 N 个数字中成功构造出一个数组,使得数组的第 i 位 (1 <= i <= N) 满足如下两个条件 ...
- 力扣 -- 526. 优美的排列
一.题目描述 假设有从 1 到 N 的 N 个整数,如果从这 N 个数字中成功构造出一个数组,使得数组的第 i 位 (1 <= i <= N) 满足如下两个条件中的一个,我们就称这个数组为 ...
- 递归-力扣-526. 优美的排列
题目链接 优美的排列 假设有从 1 到 n 的 n 个整数.用这些整数构造一个数组 perm(下标从 1 开始),只要满足下述条件 之一 ,该数组就是一个 优美的排列 : perm[i] 能够被 i ...
- 526. 优美的排列
假设有从 1 到 N 的 N 个整数,如果从这 N 个数字中成功构造出一个数组,使得数组的第 i 位 (1 <= i <= N) 满足如下两个条件中的一个,我们就称这个数组为一个优美的排列 ...
- Java实现 LeetCode 667 优美的排列 II(暴力)
667. 优美的排列 II 给定两个整数 n 和 k,你需要实现一个数组,这个数组包含从 1 到 n 的 n 个不同整数,同时满足以下条件: ① 如果这个数组是 [a1, a2, a3, - , an ...
- leetcode 526. Beautiful Arrangement | 526. 优美的排列(回溯)
题目 https://leetcode.com/problems/beautiful-arrangement/ 题解 首先分析,全排列一个一个试的话(如下图),时间复杂度O(n^2),当n=15时,总 ...
最新文章
- 安装numpy/scipy/scikit-learn的方法
- 大神程序员都懂英文翻译,而你却因英语不行遭拒?
- 与时间相关NSCalendar、NSDate类的基本使用
- scjp考试准备 - 11 - 类型转换2
- 【IEEE Transactions NNLS】DSAN: Deep Subdomain Adaptation Network for Image Classification译读笔记
- 南丁格尔邮票图片大全_【鉴赏】武夷山普通纪念币鉴赏(高清图片)
- HDU 6390 GuGuFishtion(莫比乌斯反演 + 欧拉函数性质 + 积性函数)题解
- 中兴2016笔试题答案Java_中兴笔试题和面试题答案与答案
- ubuntu linux修改ip地址命令,如何在ubuntu桌面通过命令行,更改ip地址
- 力扣第39题dfsdfs(respathtarget-candidates[1]i)#调用递归,组成目标的 i 可以重复用,不用i+1,def dfsdfs(resres,pathtarget,ind
- LDR2001电脑免驱USB转串口芯片方案
- 开咖啡店如何盈利?用50家咖啡店揭晓一套盈利模式
- gta5结局杀老崔我哭了_GTA5:每个主角都在故事里得到了自己想要的东西,但崔佛却是白给...
- 【前端前沿看点】React和Vue深度对比
- SpringBoot - Tomcat 容器 Spring 绿色叶子灰色解决方案
- 2022版使用云服务器搭建公网k8s容器集群
- 与亚马逊Amazon Device EDI进行测试都有哪些场景?
- Java - 文件下载输出到浏览器
- vue项目中,关于echarts报错:To install them, you can run: npm install --save echarts/lib/chart/bar…………
- Gaussian量子化学计算、LAMMPS分子动力学模拟
热门文章
- 怎么看cudnn的版本好_祖坟风水怎么看,好祖坟有什么征兆?
- 【设计模式 04】代理模式
- php表示私有变量的是,PHP 访问私有和受保护的成员变量
- android收入管理系统,毕业设计(论文)-基于Android系统的家庭理财通软件的设计——收入管理模块.docx...
- 字符设备驱动高级篇6——内核提供的读写寄存器接口
- 关于一些html和css2的知识点
- (五)uboot移植补基础之shell
- 云计算三种服务模式SaaS、PaaS和IaaS及其之间关系(顺带CaaS、MaaS)
- response.setContentType()的作用及MIME参数详解
- 四则运算个人项目进展