这5道算法题 都可以套用这个模板

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与机器学习算法频道

欢迎点赞和转发

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180713G216LY00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券