//给定一个 没有重复 数字的序列,返回其所有可能的全排列。 // // 示例: // // 输入: [1,2,3] //输出: //[ // [1,2,3], // [1,3,2], // [2,1,3], // [2,3,1], // [3,1,2], // [3,2,1] //
https://segmentfault.com/a/1190000021387242// Related Topics 回溯算法 // 👍 1063 👎 0 import java.util.List; //leetcode submit region begin(Prohibit modification and deletion) class Solution { public static List<List<Integer>> result = new ArrayList<>(); public static void main(String[] args) { System.out.println(permute(new int[]{1, 2, 3})); } public static List<List<Integer>> permute(int[] nums) { permuteRun(nums,new ArrayList<>()); return result; } public static void permuteRun(int[] nums, List<Integer> list){ if (list.size() == nums.length){ result.add(new ArrayList<>(list)); return; } for (int i = 0; i < nums.length; i++) { if (list.contains(nums[i]))continue; list.add(nums[i]); permuteRun(nums,list); int finalI = i; list.removeIf(num->num.equals(nums[finalI])); } } } //leetcode submit region end(Prohibit modification and deletion)
2021-01-08 全排列回溯法
最新推荐文章于 2024-07-25 11:27:31 发布