【leetcode】【46】Permutations
来源:互联网 发布:编程技术教学 编辑:程序博客网 时间:2024/05/17 10:08
一、问题描述
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]
.
二、问题分析
同样是backtracking,与combinations极其类似,不过该题中需要用到一个visited数组来标记一下某个元素是否访问过。
三、Java AC 代码
public List<List<Integer>> permute(int[] nums) {List<List<Integer>> list = new ArrayList<List<Integer>>();List<Integer> item = new ArrayList<Integer>();if (nums==null || nums.length==0) {return list;}boolean[] visited = new boolean[nums.length];dfsHelper(list, item, nums, visited);return list;}public void dfsHelper(List<List<Integer>> list, List<Integer> item, int[] nums, boolean[] visited){if (item.size()==nums.length) {list.add(new ArrayList<Integer>(item));return ;}for (int i = 0; i < nums.length; i++) {if (!visited[i]) {item.add(nums[i]);visited[i] = true;dfsHelper(list, item, nums, visited);visited[i] = false;item.remove(item.size()-1);}}}
0 0
- LeetCode 46 Permutations + LeetCode 47 Permutations II
- LeetCode 46: Permutations
- leetcode 46 Permutations
- LeetCode 46 Permutations II
- LeetCode(46) Permutations
- [leetcode 46] Permutations
- Leetcode NO.46 Permutations
- leetcode || 46、Permutations
- leetcode-46 Permutations
- leetcode 46 : Permutations
- Leetcode #46 Permutations
- LeetCode(46) Permutations
- leetcode 46: Permutations
- [leetcode-46]Permutations(java)
- LeetCode(46)Permutations
- [Leetcode]#46 Permutations
- leetcode 46:Permutations
- 【leetcode】【46】Permutations
- JAVA基础之基本规则
- J2EE开发技术点2:图形验证码
- Python的decorator学习笔记
- OpenStack--简介
- Caffe中learning rate 和 weight decay 的理解
- 【leetcode】【46】Permutations
- 嵌入式操作系统学习笔记:01.书籍与OS源码选择
- 实战 Mantle 解析界面app 科技频道
- C++primer plus第六版课后编程练习答案5.3
- 桌面端ViewPort的故事(一)
- Android源码开发之横屏actionbar的title消失
- 设计模式之--工厂方法
- 批量给多台Android手机安装APK脚本
- git删除本地仓库