首页 > 其他 > 详细

【LeetCode】Permutations

时间:2014-05-27 02:41:27      阅读:370      评论:0      收藏:0      [点我收藏+]

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].

bubuko.com,布布扣
public class Solution {
    public ArrayList<ArrayList<Integer>> permute(int[] num) {
        ArrayList<ArrayList<Integer>> re =new ArrayList<ArrayList<Integer>>();
        if(num.length==0)
            return re;
        ArrayList<Integer> ai = new ArrayList<Integer>();
        ArrayList<ArrayList<Integer>> te =new ArrayList<ArrayList<Integer>>();
        ai.add(num[0]);
        re.add(ai);
        te.add(ai);
        if(num.length==1)
            return re;
        for(int i=1;i<num.length;i++){
            int t = num[i];
            Iterator<ArrayList<Integer>> it = re.iterator();
            te =new ArrayList<ArrayList<Integer>>();
            while(it.hasNext()){
                ai = it.next();
                for(int j=0;j<ai.size();j++){
                    ai.add(j, t);
                    ArrayList<Integer> tem = new ArrayList<Integer>();
                    for(int mm=0;mm<ai.size();mm++)
                        tem.add(ai.get(mm));
                    te.add(tem);
                    ai.remove(j);
                }
                ArrayList<Integer> ttem = new ArrayList<Integer>();
                for(int nn=0;nn<ai.size();nn++)
                    ttem.add(ai.get(nn));
                ttem.add(t);
                te.add(ttem);
                
            }
            re=te;
            te=new ArrayList<ArrayList<Integer>>();
        }
        return re;
        
    }
}
bubuko.com,布布扣

 

【LeetCode】Permutations,布布扣,bubuko.com

【LeetCode】Permutations

原文:http://www.cnblogs.com/yixianyixian/p/3735696.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!