农民代表
- 积分
- 7039
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2012-2-2
- 最后登录
- 1970-1-1
|
本帖最后由 圆梦梦剧场 于 2014-10-24 04:25 编辑
- public class Permutations {
- public ArrayList<ArrayList<Integer>> permute(int[] num, int m) {
- ArrayList<ArrayList<Integer>> permutations = new ArrayList<ArrayList<Integer>>();
- if (num != null && m <= num.length) {
- dfs(num, permutations, new ArrayList<Integer>(), new boolean[num.length], m);
- }
- return permutations;
- }
- private void dfs(int[] num, ArrayList<ArrayList<Integer>> permutations, ArrayList<Integer> permutation, boolean[] used, int m) {
- if (m == permutation.size()) {
- permutations.add(new ArrayList<Integer>(permutation));
- return;
- }
- for (int i = 0; i < used.length; ++i) {
- if (!used[i]) {
- used[i] = true;
- permutation.add(num[i]);
- dfs(num, permutations, permutation, used, m);
- permutation.remove(permutation.size() - 1);
- used[i] = false;
- }
- }
- }
- }
复制代码 |
|