Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
46 lines (41 loc) · 1.23 KB

File metadata and controls

46 lines (41 loc) · 1.23 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package leetcode;
import com.alibaba.fastjson.JSON;
import org.junit.Test;
import utils.ArrayUtils;
import java.util.ArrayList;
import java.util.List;
/**
* dfs深度遍历,求一个数组的排列组合
* 如,输入1,2,3,输出这三个元素所有的排序组合可能性
*/
public class Permute {
//[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,2,1],[3,1,2]]
@Test
public void test() {
System.out.println(JSON.toJSONString(permute(new int[]{1, 2, 3})));
}
public List<List<Integer>> permute(int[] nums) {
List<List<Integer>> res = new ArrayList();
dfs(nums, 0, res);
return res;
}
/**
* 不断交换元素来列出所有可能的排列
*
* @param nums
* @param index
* @param res
*/
private void dfs(int[] nums, int index, List<List<Integer>> res) {
if (index == nums.length) {
List<Integer> list = new ArrayList();
for (int i : nums) list.add(i);
res.add(list);
}
for (int i = index; i < nums.length; i++) {
ArrayUtils.swap(nums, index, i);
dfs(nums, index + 1, res);
ArrayUtils.swap(nums, index, i);
}
}
}
Morty Proxy This is a proxified and sanitized view of the page, visit original site.