Permutations
2016-06-15 16:38
246 查看
好多遍了,这次放在这里
public class Solution {
public List<List<Integer>> permute(int[] nums) {
List<List<Integer>> results = new LinkedList<>();
if (nums == null || nums.length == 0) {
return results;
}
List<Integer> list = new LinkedList<>();
permuteHelper(results, list, nums);
return results;
}
private void permuteHelper(List<List<Integer>> results, List<Integer> list, int[] nums) {
if (list.size() == nums.length) {
results.add(new LinkedList<>(list));
return;
}
for (int i = 0; i < nums.length; i++) {
if (list.contains(nums[i])) {
continue;
}
list.add(nums[i]);
permuteHelper(results, list, nums);
list.remove(list.size() - 1);
}
}
}
public class Solution {
public List<List<Integer>> permute(int[] nums) {
List<List<Integer>> results = new LinkedList<>();
if (nums == null || nums.length == 0) {
return results;
}
List<Integer> list = new LinkedList<>();
permuteHelper(results, list, nums);
return results;
}
private void permuteHelper(List<List<Integer>> results, List<Integer> list, int[] nums) {
if (list.size() == nums.length) {
results.add(new LinkedList<>(list));
return;
}
for (int i = 0; i < nums.length; i++) {
if (list.contains(nums[i])) {
continue;
}
list.add(nums[i]);
permuteHelper(results, list, nums);
list.remove(list.size() - 1);
}
}
}
相关文章推荐
- C++ 函数的扩展④--函数重载与函数指针
- linux shell 指令 诸如-d, -f, -e之类的判断表达式
- android更新LOGO后无法显示新LOGO的原因
- Qt,QTableWidget的两个函数item和itemAt
- mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法
- Linux设备驱动开发学习(2):Linux设备驱动简介
- 解决存到数据库里中文乱码问题
- url里跳转传递数据
- php百度坐标转高德坐标
- c++:深复制
- Java Iterator, ListIterator 和 foreach语句使用
- 作业九 ----课程总结
- Linux下Tomcat catalina.out自动归档,以及logrotate 配置详解
- Web体系=资源+URI+表示
- 获取触摸屏幕上点的颜色
- easyrec推荐系统---学习笔记---如何修改、编译、运行
- easyrec推荐系统---学习笔记---如何修改、编译、运行
- java web开发知识(一)
- C++ 构造/析构函数中调用虚函数的问题
- IOS-下载地址&评价地址