题解 | #集合的所有子集(一)#

集合的所有子集(一)

http://www.nowcoder.com/practice/c333d551eb6243e0b4d92e37a06fbfc9


public class Solution {
    public ArrayList<ArrayList<Integer>> subsets(int[] S) {
       if(S == null){
           return null;
       }
//         int n = S.length;
        ArrayList<ArrayList<Integer>> result = new ArrayList<>();
//         result.add(new ArrayList<Integer>());
//         for(int i = 0;i < n;i++){
//             int size = result.size();
//             for(int j = 0;j< size;j ++){
//                 ArrayList<Integer> path  = new ArrayList<Integer>();
//                 path.addAll(result.get(j));
//                 path.add(S[i]);
//                 result.add(path);
//             }
//         }
//         return result;
        for(int i = 0;i <= S.length ; i++){
            back(i,0, new ArrayList<Integer>(), result, S);
        }
        return result;
    }
    
    private void back(int k , int start, ArrayList<Integer> list, ArrayList<ArrayList<Integer>> result, int[] S){
        if(k < 0){
            return;
        }else if(k == 0){
            result.add(new ArrayList<>(list));
        }else{
            for(int i = start; i < S.length;i++){
                list.add(S[i]);
                back(k - 1, i + 1, list ,result, S);
                list.remove(list.size() - 1);
            }
        }
        
        
        
    }
}
全部评论

相关推荐

11-22 16:49
已编辑
北京邮电大学 Java
美团 质效,测开 n*15.5
点赞 评论 收藏
分享
球球别再泡了:坏,我单9要了14
点赞 评论 收藏
分享
喜欢走神的孤勇者练习时长两年半:池是池,发是发,我曾池,我现黑
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务