题解 | #集合的所有子集#

集合的所有子集

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

import java.util.*;

public class Solution {
    public static ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>();
    public ArrayList<ArrayList<Integer>> subsets(int[] S) {
        ArrayList<Integer> track = new ArrayList<>();
        Arrays.sort(S);
        dfs(S, 0, track);
        Collections.sort(res,(o1,o2)->{
            return o1.size()-o2.size();
        });
        return res;
    }
    public void dfs(int[] arr, int index, ArrayList<Integer> temp){
        //if(index>=arr.length) return;
        res.add(new ArrayList<Integer>(temp));
        for(int i=index;i<arr.length;i++){
            temp.add(arr[i]);
            dfs(arr,i+1,temp);
            temp.remove(temp.size()-1);
        }
    }
}

回溯后对输出按照元素的长度排个序

全部评论

相关推荐

不愿透露姓名的神秘牛友
08-14 22:16
我爱加瓦233:今年行情真的好起来了,暑期实习拿了美团,京东,饿了么三家的Offer,最终去了美团,披上了我的黄马褂,开启送外卖之旅
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
08-08 18:20
职场水母:这题思路是什么,我目前想的一个暴力方法就是先把这个链表遍历一遍,用哈希表存储出现次数,然后再根据哈希表来一个一个删除节点,
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务