今天为大家分享如何用算法来求全排列!话不多说,直接看题!
# 01、全排列概念
什么是全排列?从 n 个不同元素中任取 m(m≤n)个元素,按照一定的顺序排列起来,叫做从 n 个不同元素中取出 m 个元素的一个排列。当 m=n 时所有的排列情况叫全排列。
比如 [1,2,3] 全排列共有 6 种:

# 02、全排列题目
然后把上面的全排列稍微改改,就变成了一道算法题。。。
全排列问题 |
---|
给定一个 没有重复 数字的序列,返回其所有可能的全排列。 |
示例:
输入: [1,2,3]
输出:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 03、题解分析
这种由基础数学知识改编而成的题目,在面试时还是很受欢迎的。因为作为面试官,可以用这种题目,来显示自己的博学。(谬论)
假如我们不是做算法题,而是做数学题。我们会一个位置一个位置的来考虑,先写出以1开头的排列,再写出以2开头的排列,最后写出以3开头的排列。