17. subsets

来源:互联网 发布:解压缩包的软件 编辑:程序博客网 时间:2024/04/27 03:23

中等 子集

22%
通过

给定一个含不同整数的集合,返回其所有的子集

样例

如果 S = [1,2,3],有如下的解:

[  [3],  [1],  [2],  [1,2,3],  [1,3],  [2,3],  [1,2],  []]
注意

子集中的元素排列必须是非降序的,解集必须不包含重复的子集

标签 Expand 
递归

public class Solution {    public List<List<Integer>> subsets(int[] nums) {        List<List<Integer>> result = new ArrayList<List<Integer>>();        if(nums == null || nums.length == 0){            return result;        }        Arrays.sort(nums);        dfs(nums,0,new ArrayList<Integer>(), result);        return result;    }    public void dfs(int[] nums,int index, ArrayList<Integer> path, List<List<Integer>> result){        result.add(new ArrayList<Integer>(path));        for(int i = index; i < nums.length; i++){            path.add(nums[i]);            dfs(nums,i+1,path,result);            path.remove(path.size()-1);        }    } }






0 0
原创粉丝点击