leetcode-78. Subsets

来源:互联网 发布:淘宝网银怎么开通 编辑:程序博客网 时间:2024/06/13 00:48

leetcode-78. Subsets

题目:

Given a set of distinct integers, nums, return all possible subsets.

Note: The solution set must not contain duplicate subsets.

For example,
If nums = [1,2,3], a solution is:

[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]

public class Solution {    public List<List<Integer>> subsets(int[] nums) {        List<List<Integer>> ret = new ArrayList<List<Integer>>();        Arrays.sort(nums);        for(int i = 0 ; i <= nums.length; i++){            Helper(ret,new ArrayList<Integer>(), 0, i, nums);        }        return ret;    }    private void Helper(List<List<Integer>> ret , List<Integer> list, int pos, int k, int[] nums){        if(list.size()==k){            ret.add(new ArrayList<Integer>(list));            return ;        }        for(int i = pos ; i < nums.length ; i++){            list.add(nums[i]);            Helper(ret,list,i+1,k,nums);            list.remove(list.size()-1);        }    }}
0 0