LeetCode-46-全排列
题目
给定一个不含重复数字的数组 nums
,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。
示例 1:
1 | 输入:nums = [1,2,3] |
示例 2:
1 | 输入:nums = [0,1] |
示例 3:
1 | 输入:nums = [1] |
提示:
1 <= nums.length <= 6
-10 <= nums[i] <= 10
nums
中的所有整数 互不相同
题解
这一题还是要按照全排列的原理去考虑:
对于n
个数的全排列,我们依次固定每一位的数,便可以得到全排列的结果,代码中的处理如下:
还是照常的DFS
,但是在DFS
的时候我们需要进行交换操作,交换操作就是固定操作。我们从当前位置x
开始,x
和i
进行交换,然后再DFS
,DFS
结束之后记得交换回来,让nums
恢复初始状态。
如果x == nums.size() - 1
,需要添加到res
里去。
1 | class Solution { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Excelius's World!