博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
全排列 题解
阅读量:6339 次
发布时间:2019-06-22

本文共 698 字,大约阅读时间需要 2 分钟。

T1:无重复数字的全排列

【题目描述】

输入 n(<=11),按从小到大输出数字 1 到 n 个的全部排列。

【样例输入】

3

【样例输出】

1:1 2 3

2:1 3 2

3:2 1 3

4:2 3 1

5:3 1 2

6:3 2 1

====================================================

T2:无重复元素的全排列

【题目描述】

输入 n(<=11)个不同字符,按 ASCII 值从小到大输出 n 个字符的全部排列。

【样例输入】

abc

【样例输出】

1:a b c

2:a c b

3:b a c

4:b c a

5:c a b

6:c b a

===================================================

T3:有重复元素的全排列

【题目描述】

输入 n(<=10)个小些字母(可能重复),按从小到大输出输出 n 个字符的全部排列。

【样例输入】

abaab

【样例输出】

1:aaabb

2:aabab

3:aabba

4:abaab

5:ababa

==================题解================

用递归来取代多重循环。

bool vis数组记录是否取过此值,用一个变量来控制递归深度,开一个临时数组存储结果,每次更新这个数组,进函数时先判断深度,若深度==n,则输出数组中的值,return;之后进循环,先判断是否取过,若未取过则更新临时数组后递归到下一层。

转载于:https://www.cnblogs.com/linjia64/p/9607174.html

你可能感兴趣的文章
java中有类似C#里ref或out的功能吗?
查看>>
利用 Visual C# .NET 使 Word 自动新建文档
查看>>
Asp.net中利用ExecuteNonQuery()执行存储过程返回-1解决方案
查看>>
SproutCore:将MVC引入JavaScript
查看>>
[LintCode] 拓扑排序
查看>>
C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解
查看>>
1.5. RALDRS
查看>>
foreach用法
查看>>
C#开发微信门户及应用(27)-公众号模板消息管理
查看>>
JAVA 对象的行为 总结
查看>>
.NET Framework 1.1 中 SmartNavigation 的实现
查看>>
厚积薄发,丰富的公用类库积累,助你高效进行系统开发(14)---Winform开发的常用类库(终结篇,CHM文档放送)...
查看>>
CentOS两台服务器利用scp拷贝文件
查看>>
所选驱动器不再有效,继续安装之前,请先检查安装路径的设置
查看>>
Netty 中ChannelOption的含义以及使用的场景
查看>>
Lua 调用 Opencv 的方法
查看>>
eclipse JavaEE版"javax.servlet.http.HttpServlet" was not found on the Java Build Path问题的解决办法...
查看>>
Java JDBC封装模式
查看>>
EventBus: Could not dispatch event: class com.********.LoginEvent to subscribing class
查看>>
郝亮:数据助力城市发展建设——城市大脑
查看>>