LeetCode2:全排列1
阿新 • • 發佈:2018-12-12
題目
給定一個沒有重複數字的序列,返回其所有可能的全排列。
示例:
輸入: [1,2,3] 輸出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]
package 全排列; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Scanner; public class Demo1_paixu { public static void main(String[] args) { int[] nums = {1,1,3}; int[] tempArr = new int[nums.length]; List<List<Integer>> list = permute(nums); for (List<Integer> l : list) { System.out.println(l); } } public static List<List<Integer>> permute(int[] nums) { List<List<Integer>> res = new ArrayList<>(); backtrack(res, new ArrayList<>(), nums); return res; } public static void backtrack(List<List<Integer>> res, List<Integer> tempRes, int[] nums) { if (tempRes.size() == nums.length) { res.add(new ArrayList<>(tempRes)); } else { for (int i = 0; i < nums.length; i++) { if (tempRes.contains(nums[i])) { continue; } tempRes.add(nums[i]); backtrack(res, tempRes, nums); tempRes.remove(tempRes.size() - 1); } } } }