题目描述
给定一个没有重复数字的序列,返回其所有可能的全排列。
示例:
输入: [1,2,3]
输出:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
思路
全排列函数 qpl,传入一个参数n,代表当前交换的首元素,然后遍历交换其与剩下的元素,每次交换之后,调用qpl函数,传入n+1,即 qpl 目前交换元素后剩下的位数的全排列,然后再交换回来。当交换到最后一位,传入结果集中。
代码
class Solution {
public:
vector<vector<int> > ans;