首页 > 代码库 > LeetCode——Permutations
LeetCode——Permutations
Given a collection of numbers, return all possible permutations.
For example,[1,2,3]
have the following permutations:[1,2,3]
, [1,3,2]
, [2,1,3]
, [2,3,1]
, [3,1,2]
, and [3,2,1]
.
题目:给定一组数,返回其全排列。
思路:记录每一个数是否被使用过,将未使用过的数加入到current中,current长度已满,则加入到result中。
public List<List<Integer>> permute(int[] num) { if (num == null) return null; List<List<Integer>> result = new ArrayList<List<Integer>>(); if (num.length == 0) return result; permute(num, new boolean[num.length], new ArrayList<Integer>(), result); return result; } public void permute(int[] num, boolean[] isused, ArrayList<Integer> current, List<List<Integer>> result) { if (current.size() == num.length) { result.add(new ArrayList<Integer>(current)); return; } for (int i = 0; i < num.length; i++) { if (!isused[i]) { isused[i] = true; current.add(num[i]); permute(num, isused, current, result); current.remove(current.size() - 1); isused[i] = false; } } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。