码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode-Permutations

时间:2016-08-24 06:29:48      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:

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 {
    public List<List<Integer>> permute(int[] nums) {
        if(nums==null || nums.length==0){return null;}
        List<List<Integer>> resList=new ArrayList<List<Integer>>();
        List<Integer> item=new ArrayList<Integer>();
        boolean[] isVisited=new boolean[nums.length];
        backTracking(nums, item, resList, isVisited);
        return resList;
    }
    public void backTracking(int[] nums, List<Integer> item, List<List<Integer>> resList, boolean[] isVisited){
        if(item.size()==nums.length){
            resList.add(new ArrayList<Integer>(item));
            return;
        }
        for(int i=0; i<nums.length; i++){
            if(!isVisited[i]){
                isVisited[i]=true;
                item.add(nums[i]);
                backTracking(nums, item, resList, isVisited);
                item.remove(item.size()-1);
                isVisited[i]=false;
            }
        }
    }
}

 

LeetCode-Permutations

标签:

原文地址:http://www.cnblogs.com/incrediblechangshuo/p/5801385.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!