leetcode-Permutations
来源:互联网 发布:python自动化运维平台 编辑:程序博客网 时间:2024/06/07 00:38
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]
.
public class Solution { ArrayList<ArrayList<Integer>> result=new ArrayList<ArrayList<Integer>>(); public ArrayList<ArrayList<Integer>> permute(int[] num) { if(num.length==0)return null; myPermute(num,0,new ArrayList<Integer>()); return result; } public void myPermute(int[] num,int index,ArrayList<Integer> cur){ for(int i=0;i<=index;i++){ cur.add(i,num[index]); ArrayList<Integer> a=new ArrayList(cur); if(index==num.length-1)result.add(a); // we should create a new list because the cur list will
need to be modified later else if(index<num.length-1)myPermute(num,index+1,cur); cur.remove(i); //undo effect } } }
这种是backtracking 的典型题目:
思路都是一样的,在每一步思考在这一步有哪些情况,然后分别尝试,在每一次尝试后都要undo 这一步的effect,在符合条件的时候把结果村粗在相应的地方。(我的习惯是在函数中输入相应的参数传递下来)
然后技巧和减小时间复杂度的方法就是有些情况我们是可以排除的,这也是最难的部分。
0 0
- 【LeetCode】Permutations && Permutations II
- leetcode: Permutations/Permutations II
- leetcode Permutations & Permutations II
- [Leetcode]Permutations && Permutations II
- LeetCode: Permutations
- LeetCode: Permutations
- [Leetcode] Permutations
- [LeetCode] Permutations
- Leetcode: Permutations
- [Leetcode] Permutations
- [Leetcode] Permutations
- [LeetCode]Permutations
- LeetCode-Permutations
- [leetcode] permutations
- LeetCode - Permutations
- Leetcode: Permutations
- 【leetcode】Permutations
- 【LeetCode】Permutations
- php需要学习那些东西
- [PHP基础] 分享一个PHP经典面试题
- MVC入门篇
- GCC link option
- 《算法竞赛入门经典(第2版)》刘汝佳读后感
- leetcode-Permutations
- 闪回恢复区无可用空间带来的问题及解决
- 多线程(一)——多线程编程主要考虑的两大问题
- eclipse开发cocos2dx 3.2环境搭建之二: cocos2dx 3.2安装及测试运行 (An internal error occurred during: "C/C++ Indexe)
- iOS音视频SDK开发技术解决方案
- 2015年学习方向
- iOS 跳转出现attempt to dismiss modal view controller whose view does not currently ……的解决方案
- DECLARE_DYNAMIC、IMPLEMENT_DYNAMIC
- ant build.xml 打包应三方jar注意的问题与混淆R的写法