46. Permutations【LeetCode算法之旅之DFS】
2017-03-11 09:35
218 查看
Given a collection of distinct numbers, return all possible permutations.
For example,
题意:求一个序列的各种组合。
思路:使用DFS策略。代码如下:package leetcode;
import java.util.ArrayList;
import java.util.List;
public class Solution {
private List<List<Integer>> list = new ArrayList<List<Integer>>();
private void dfs(int[] nums, List<Integer> subList){
if(subList.size() == nums.length){
list.add(subList);
return;
}
for (int i = 0; i < nums.length; i++){
if(!subList.contains(nums[i])){
List<Integer> subList2 = new ArrayList<Integer>();
subList2.addAll(subList);//subList2是对subList的复制
subList2.add(nums[i]);
dfs(nums, subList2);
}
}
}
public List<List<Integer>> permute(int[] nums) {
List<Integer> subList = new ArrayList<Integer>();
dfs(nums, subList);
return list;
}
}
For example,
[1,2,3]have the following permutations:
[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]
题意:求一个序列的各种组合。
思路:使用DFS策略。代码如下:package leetcode;
import java.util.ArrayList;
import java.util.List;
public class Solution {
private List<List<Integer>> list = new ArrayList<List<Integer>>();
private void dfs(int[] nums, List<Integer> subList){
if(subList.size() == nums.length){
list.add(subList);
return;
}
for (int i = 0; i < nums.length; i++){
if(!subList.contains(nums[i])){
List<Integer> subList2 = new ArrayList<Integer>();
subList2.addAll(subList);//subList2是对subList的复制
subList2.add(nums[i]);
dfs(nums, subList2);
}
}
}
public List<List<Integer>> permute(int[] nums) {
List<Integer> subList = new ArrayList<Integer>();
dfs(nums, subList);
return list;
}
}
相关文章推荐
- LeetCode—**Combination Sum 利用DFS算法
- LeetCode 37. Sudoku Solver|DFS算法
- leetcode中关于树的dfs算法题
- 算法总结(7)--leetcode上的递归,BFS,DFS思考
- LeetCode—*Combination Sum II(DFS算法C数组中有重复值)
- Leetcode_Palindrome_Partitioning_DFS 算法
- 图的遍历算法DFS和BFS(C++)
- 二分图匹配(匈牙利算法DFS实现)
- DFS深度搜索算法实现深度探究解析-以POJ 1040为例
- 【算法入门】深度优先搜索(DFS)
- 几个有关图的算法2(DFS,TopoLogicalSort) .
- 经典算法研究系列:四、教你通透彻底理解:BFS和DFS优先搜索算法(转csdn)
- 二、基本算法之DFS、BFS和A*
- DFS深度搜索算法实现深度探究解析-以POJ 1040为例
- BFS/DFS算法介绍与实现
- DFS算法的实现
- 经典算法研究系列:四、教你通透彻底理解:BFS和DFS优先搜索算法
- 经典算法研究系列:四、教你通透彻底理解:BFS和DFS优先搜索算法
- poj 1469 二分图匹配(dfs算法)
- BFS和DFS优先搜索算法