当前位置:网站首页>算法---优美的排列(Kotlin)
算法---优美的排列(Kotlin)
2022-08-09 04:48:00 【小米科技Android 研发曹新雨】
题目
假设有从 1 到 n 的 n 个整数。用这些整数构造一个数组 perm(下标从 1 开始),只要满足下述条件 之一 ,该数组就是一个 优美的排列 :
perm[i] 能够被 i 整除
i 能够被 perm[i] 整除
给你一个整数 n ,返回可以构造的 优美排列 的 数量 。
示例 1:
输入:n = 2
输出:2
解释:
第 1 个优美的排列是 [1,2]:
- perm[1] = 1 能被 i = 1 整除
- perm[2] = 2 能被 i = 2 整除
第 2 个优美的排列是 [2,1]:
- perm[1] = 2 能被 i = 1 整除
- i = 2 能被 perm[2] = 1 整除
示例 2:
输入:n = 1
输出:1
提示:
1 <= n <= 15
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/beautiful-arrangement
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解决思路
总的排列是n!,我们需要在n!里面寻找符合条件的Case
解决方法
fun countArrangement(n: Int): Int {
return helper(n, 1, 0)
}
private fun helper(n: Int, cur: Int, flag: Int): Int {
if (cur > n){
return 1
}
var result = 0
for (i in 1..n){
if ((flag and 1 shl i == 0) && (cur % i == 0 || i % cur == 0)){
result += helper(n,cur+1,flag or (1 shl i))
// println("$cur $i $result")
}
}
return result
}
总结
1.这道题用dp去做的话,真的有点难
题解我都看了好几个人的 耐下心来看了3次以上 终于懵懂一点
2.比较简单的递归加For循环,其实也有很多人做不出来
这种题的操作就是for循环里面 还会有很多的for循环要写 那么就使用这种方法
3.dp方法今天看来想不通了 明天继续思考吧
边栏推荐
猜你喜欢
【Harmony OS】【ARK UI】轻量级数据存储
equals and ==
MySQL: Implementation Principles of Submitted Read and Repeatable Read | MVCC (Multi-Version Concurrency Control) - Notes for Your Own Use
软件测试的方法详细介绍
TCP/IP协议中分包与重组原理介绍、分片偏移量的计算方法、IPv4报文格式
在快手工作是一种什么体验
存储系统架构演变
MySQL:redo log日志——笔记自用
Construction and practice of full stack code test coverage and use case discovery system
基于ABP和Magicodes实现Excel导出操作
随机推荐
2022 High-altitude installation, maintenance, and demolition exam practice questions and mock exams
php使用phpoffice/phpspreadsheet导入导出excel表格
【暑期每日一题】洛谷 P1048 [NOIP2005 普及组] 采药
【HMS core】【Ads Kit】华为广告——海外应用在国内测试正式广告无法展示
通讯录(动态版)(C语言)(VS)
【HMS core】【ML kit】Machine Learning Service FAQ
匿名共享内存 ashmem
遗传力缺失的案例
通讯录(文件版)(C语言)(VS)
消失的遗传力--wiki
perl基础语法归纳
LeetCode - remove consecutive nodes with a sum of zero from a linked list
【开发者必看】【push kit】推送服务服务典型问题合集2
【暑期每日一题】洛谷 P5729 【深基5.例7】工艺品制作
【暑期每日一题】洛谷 P5724 【深基4.习5】求极差 / 最大跨度值
C进阶-C语言文件操作
equals and ==
杰理之播歌曲前后音量大小不一样【篇】
2022 Security Officer-B Certificate Exam Practice Questions and Online Mock Exam
杰理之SD卡切回蓝牙没有作用【篇】