给定一个 没有重复 数字的序列,返回其所有可能的全排列。
示例:
输入: [1,2,3]
输出:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/permutations
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路:全排列,用回溯法。回溯法就是当你在这个位置的时候去求你这个位置后面的所有可能性的时候,你要个 没有重复 数字的序列,返回其所有可能的全排列。
示例:
输入: [1,2,3]
输出:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/permutations
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路:全排列,用回溯法。回溯法就是当你在这个位置的时候去求你这个位置后面的所有可能性的时候,你要回溯道前面,因为,我后面还要继续使用。(这个理解不知道对不对,路过的大佬帮忙看看
package 力扣;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class No46 {
public List> permute(int[] nums) {
List> list =new ArrayList<>();
ArrayList list1=new ArrayList();
for(int i=0;i nums,List> output,int first) {
if (first == n)
output.add(new ArrayList(nums));
for (int i = first; i < n; i++) {
Collections.swap(nums, first, i);
backtrack(n, nums, output, first + 1);
Collections.swap(nums, first, i);
}
}
}
)