LeetCode:526. Beautiful Arrangement
来源:互联网 发布:交行信用卡 知乎 编辑:程序博客网 时间:2024/06/04 19:13
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:
- The number at the ith position is divisible by i.
- i is divisible by the number at the ith position.
Now given N, how many beautiful arrangements can you construct?
Example 1:
Input: 2Output: 2Explanation:
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:
- N is a positive integer and will not exceed 15.
题意:将1-n个数放置到1-n的位置上,对于每个位置上的数必须满足a[i]可以被i整除或者被整除。
这是一个深度搜索的过程,和走迷宫问题类似,必须记录一个used数组,用来标记当前已经用过的数。主要难点是理解题意,并且转化成为一个便于理解的深度搜索过程。
代码如下:
class Solution { int count=0; public int countArrangement(int n) { dfs(n,n,new boolean[n+1]); return count; } public void dfs(int n,int k,boolean[] used){ if(k==1) { count++; return ; } for(int i=1;i<=n;i++){ if(!used[i]&&(i%k==0||k%i==0)) { used[i]=true; dfs(n,k-1,used); used[i]=false; } } }}
阅读全文
0 0
- LeetCode 526. Beautiful Arrangement
- 【Leetcode】526. Beautiful Arrangement
- [LeetCode]526. Beautiful Arrangement
- 【LeetCode】526. Beautiful Arrangement
- leetcode 526. Beautiful Arrangement
- Leetcode: 526. Beautiful Arrangement
- [LeetCode] 526. Beautiful Arrangement
- [LeetCode]526. Beautiful Arrangement
- [LeetCode] 526. Beautiful Arrangement
- LeetCode:526. Beautiful Arrangement
- [leetcode] 526. Beautiful Arrangement
- LeetCode笔记:526. Beautiful Arrangement
- 【LeetCode】526. Beautiful Arrangement【M】【35】【回溯】
- [Leetcode] 526. Beautiful Arrangement 解题报告
- Leetcode Beautiful Arrangement
- Leetcode 526 Beautiful Arrangement
- LeetCode 526 Beautiful Arrangement
- leetcode- Beautiful Arrangement II
- Windows IO模型-Select模型(同步阻塞模型)
- centos7多终端gnome桌面
- 第一周、课时5:js中的变量和数据类型
- GBDT和随机森林的区别
- Tensorflow之池化函数汇总
- LeetCode:526. Beautiful Arrangement
- es6 itaertor遍历器
- 继承性
- [bzoj2226] LCMSum 数学+筛法
- java进阶建议阅读的书籍
- python中对文件的操作总结
- Hibernate之查询
- IOS第三方库GPUImage的CameraDemo
- 安装CodeBlocks遇到未找到编译器的问题