1 题目
如何求 1~n 这连续 n 个数的全排列呢? 例如n=3时,全排列序列如下:
"123"
"132"
"213"
"231"
"312"
"321"
2 分析
首先我们拿出元素1,然后在1,2,3 这个深度方向寻找,找到满足题意的解有两个,1,2,3 和 1,3,2;
然后再在广度方向上搜索,此时的元素为2,再在1,2,3 深度方向上搜索,得到满足题意的解,2,1,3和2,3,1,
最后,在广度方向上搜索到3,再在1,2,3 深度方向上搜索,满足题意的解为 3,1,2 和 3,2,1。
3 代码
4 套用模板可求解的题目
1) 集合内元素都不相同,求子集
2)集合内元素可能相同,求子集
3) 求集合的不同组合序列
4)各个分割字符串都是回文数:
以上四道题目都可以套用本文中的代码模板,只需要稍作改动,不妨想一想怎么改动,已到达融会贯通的效果。
学知识,送红包系列活动
更多文章:
深入理解 TensorFlow :怎样的 AI 程序才是具备产品级的1800字普林斯顿大学课程浓缩笔记:程序员必知的算法之查找和排序算法
凡是点击广告,并留言【已点】,每周统计一次,凡留言天数超过3次者周末送神秘现金红包一个。
明天送红包!敬请期待...
Python与机器学习算法频道
欢迎点赞和转发
领取专属 10元无门槛券
私享最新 技术干货