PermutationsI II
来源:互联网 发布:mac粉底液怎么样 编辑:程序博客网 时间:2024/05/20 09:06
Permutations
Given a collection of distinct 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], [3,2,1]]
public class Solution { List<List<Integer>> res=new ArrayList<List<Integer>>(); List<Integer> cur = new ArrayList<Integer>; public List<List<Integer>> permute(int[] nums) { if(nums.length==0) return res; boolean[] isUsed=new boolean[nums.length]; permuteHelper(nums,isUsed); return res; } private void permuteHelper(int[] nums, boolean[] isUsed){ if(cur.size==nums.lenght){ res.add(cur); return; } for(int i=0;i<nums.length;i++){ if(!isUsed[i]){ cur.add(nums[i]); isUsed[i]=true; permuteHelper(nums,isUsed); isUsed[i]=false; cur.remove(cur.size()-1); } } }}
Permutations II
Given a collection of numbers that might contain duplicates, return all possible unique permutations.
For example,[1,1,2] have the following unique permutations:[ [1,1,2], [1,2,1], [2,1,1]]
public class Solution { List<List<Integer>> res=new ArrayList<List<Integer>>(); List<Integer> cur = new ArrayList<Integer>(); public List<List<Integer>> permuteUnique(int[] nums) { if(nums.length==0) return res; Arrays.sort(nums); permuteUniqueHelper(nums,new boolean[nums.length]); return res; } private void permuteUniqueHelper(int[] nums,boolean[] used){ if(cur.size()==nums.lenght){ res.add(cur); return; } for(int i=0;i<nums.length;i++){ if(i>0&&nums[i]==nums[i-1]&&!used[i-1]) continue; if(!used[i]){ cur.add(nums[i]); used[i]=true; permuteUniqueHelper(nums,used); used[i]=false; cur.remove(cur.size()-1); } } }}
0 0
- PermutationsI II
- (算法设计技巧与分析)Permutationsi
- ii
- ii
- ii
- II
- ii
- Permutations II 排列II
- Probabilistic Robotics ( II.II )
- ASC II
- Part II
- Translations II
- 横线II
- 分手II
- 童话II
- MRP II
- 链接II
- 胡思乱想II
- 属性遍历
- Redis学习
- JavaScript中的内置对象Math
- vs2013 无法创建项目 终极解决方案
- SAADC
- PermutationsI II
- HTML5+CSS 静态网页-极米商城
- malloc/free与new/delete的区别
- coco2d-x Action基本操作代码
- 写博客的一点感想
- 改变上下文
- HDU 1005
- 【Web】浅析JQuery的apply(), call(), bind()方法
- virtualenv