package com.cjy.learn; import java.util.ArrayList; import java.util.List; public class Permute { public List<List<Integer>> permute(int[] nums) { List<List<Integer>> lists = new ArrayList<>(); List<Integer> arrayList = new ArrayList<>(); int[] vis = new int[nums.length + 1]; dfs(0, vis, nums, lists, arrayList); return lists; } void dfs(int cur, int[] vis, int[] nums, List<List<Integer>> lists, List<Integer> list) { if (cur == nums.length) { lists.add(new ArrayList<Integer>(list)); } int i; for(i = 1 ; i <= nums.length ; i++){ if (vis[i] == 0) { list.add(nums[i- 1]); vis[i] = 1; dfs(cur + 1, vis, nums, lists, list); vis[i] = 0; list.remove(list.size() - 1); } } } public static void main(String[] args) { Permute permute = new Permute(); int[] nums = {1,2,3}; System.out.println(permute.permute(nums)); } }
全排列,回溯
最新推荐文章于 2023-02-05 13:27:22 发布