leetcode 526. Beautiful Arrangement | 526. 优美的排列(回溯)
题目
https://leetcode.com/problems/beautiful-arrangement/
题解
首先分析,全排列一个一个试的话(如下图),时间复杂度O(n^2),当n=15时,总共87178291200种情况,是肯定会超时的。
然后想想怎么剪枝。因为当一个位置的一个数字不可用时,后面也就没必要在尝试了。所以这种情况下,剪枝,不用继续往后走。递归如下。
递归函数中,i 是当前填写到的位置,seen 是已经用过的数字。
class Solution {public int countArrangement(int n) {return process(n, 1, new HashSet<>());}public int process(int n, int i, Set<Integer> seen) {int count = 0;if (i > n) return 1;for (int j = 1; j <= n; j++) {if (!seen.contains(j) && (i % j == 0 || j % i == 0)) {seen.add(j);count += process(n, i + 1, seen);seen.remove(j);}}return count;}
}
leetcode 526. Beautiful Arrangement | 526. 优美的排列(回溯)相关推荐
- LeetCode 526. Beautiful Arrangement
526. Beautiful Arrangement Suppose you have N integers from 1 to N. We define a beautiful arrangemen ...
- 【Leetcode】526. Beautiful Arrangement
Description: Suppose you have N integers from 1 to N. We define a beautiful arrangement as an array ...
- LeetCode笔记:526. Beautiful Arrangement
问题: Suppose you have N integers from 1 to N. We define a beautiful arrangement as an array that is c ...
- leetcode 667. Beautiful Arrangement II | 667. 优美的排列 II(Java)
题目 https://leetcode.com/problems/beautiful-arrangement-ii/ 题解 偏智力题,评论区有人说,A typical question testing ...
- leetcode526 优美的排列
leetcode526 优美的排列 回溯水题 代码: class Solution {int[] res;int cnt = 0;public void swap(int i, int j){int ...
- Java实现 LeetCode 526 优美的排列(DFS)
526. 优美的排列 假设有从 1 到 N 的 N 个整数,如果从这 N 个数字中成功构造出一个数组,使得数组的第 i 位 (1 <= i <= N) 满足如下两个条件中的一个,我们就称这 ...
- LeetCode 526. 优美的排列(回溯)
1. 题目 假设有从 1 到 N 的 N 个整数,如果从这 N 个数字中成功构造出一个数组,使得数组的第 i 位 (1 <= i <= N) 满足如下两个条件中的一个,我们就称这个数组为一 ...
- Leetcode 526.优美的排列 二进制状压DP
题目链接:传送门 假设有从 1 到 N 的 N 个整数,如果从这 N 个数字中成功构造出一个数组,使得数组的第 i 位 (1 <= i <= N) 满足如下两个条件中的一个,我们就称这个数 ...
- 递归-力扣-526. 优美的排列
题目链接 优美的排列 假设有从 1 到 n 的 n 个整数.用这些整数构造一个数组 perm(下标从 1 开始),只要满足下述条件 之一 ,该数组就是一个 优美的排列 : perm[i] 能够被 i ...
最新文章
- 你以为border-radius只是圆角吗?【各种角度】
- 开发自己的Data Access Application Block[下篇]
- Python 语法错误:“SyntaxError: invalid character in identifier“,原因及解决方法
- Hadoop Namenode不能启动
- 初探Windows用户态调试机制
- 【推荐】智慧城市建设及发展资料合集
- 树莓派无线投屏服务器,树莓派 Raspberry Pi 设置无线上网
- Springboot JPA日志输出打印SQL语句和传入的参数 高阶篇,java微服务架构视频下载
- 程序员从新手变成大佬的成长之路
- windows分类及安装
- 前端效果之“拉开窗帘”
- bzoj 1022: [SHOI2008]小约翰的游戏John(反nim游戏)
- 160多个android开源代码汇总
- 热带地区数据中心需要太阳能发电,而不是自然冷却
- ♠♦♣TypeScript
- 科研实习 | 中科院软件所郑权老师组招收图形学方向研究实习生
- 要想城府深还看不出来,牢记3个说话“潜规则”,莫要嘴欠吃亏
- HTML5 video/audio监听事件属性及方法
- python同花顺 财务_使用Python抓取同花顺资金流数据
- NOIP2022游记
热门文章
- HDU - 2825 Wireless Password(AC自动机+状压dp)
- POJ - 3680 Intervals(最大费用最大流+思维建边)
- 卷积神经网络精确率不增反降_深度学习 第四门课:卷积神经网络(Convolutional Neural Networks)...
- tomcat apache mysql_Android实现与Apache Tomcat服务器数据交互(MySql数据库)
- 外挂学习之路(11)--- 背包数据的遍历
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之六 - 运行参数
- ARP攻击实战之WinArpAttacker
- 对于 CDN 的多元理解
- Java类加载器(一)——类加载器层次与模型
- 曹大带我学 Go(6)—— 技术之外