Beautiful Arrangement问题及解法
来源:互联网 发布:软件企业 编辑:程序博客网 时间:2024/05/24 02:37
问题描述:
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?
示例:
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.
类似于求数组的排列问题,可用回溯法依次求解。
过程详见代码:
class Solution {public: int countArrangement(int N) {if (!N) return 1;vector<bool> used(N, false);int res = 0;bs(used, N, res, 0);return res;}void bs(vector<bool>& used,int n,int& res,int count){if (count == n){res++;return;}for (int i = 0; i < n; i++){if (!used[i + 1] && ((i + 1) % (count + 1) == 0 || (count + 1) % (i + 1) == 0)){used[i + 1] = true;bs(used, n, res,count + 1);used[i + 1] = false;}}}};
阅读全文
0 0
- Beautiful Arrangement问题及解法
- Beautiful Arrangement II问题及解法
- Leetcode Beautiful Arrangement
- LeetCode 526. Beautiful Arrangement
- 526. Beautiful Arrangement
- 526. Beautiful Arrangement -Medium
- 【Leetcode】526. Beautiful Arrangement
- leetcode526 Beautiful Arrangement Java
- 526. Beautiful Arrangement
- [LeetCode]526. Beautiful Arrangement
- 【LeetCode】526. Beautiful Arrangement
- Leetcode 526 Beautiful Arrangement
- leetcode 526. Beautiful Arrangement
- 526. Beautiful Arrangement
- 526. Beautiful Arrangement
- 526. Beautiful Arrangement
- 526. Beautiful Arrangement
- 526. Beautiful Arrangement
- 动态移动类型列显示物料移动
- LBP特征原理及代码实现
- java中逻辑右移">>>"算术右移">>"的区别?
- C语言:全局变量在多个 c 文件中公用的方法
- DrawerLayout的使用
- Beautiful Arrangement问题及解法
- HDU-1856 More is better(并查集)
- 《DIY四轴飞行器》读书笔记1
- 从尾到头打印链表
- Java读写Excel文件
- Swift二维数组的定义与遍历
- 乘法逆元数论篇【ORZ式教学】
- spring的单例和多例
- yii 高级版后台清理前台的缓存