Subsets

来源:互联网 发布:淘宝淘口令怎么打不开 编辑:程序博客网 时间:2024/06/04 19:08

Q:

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

Note:

  • Elements in a subset must be in non-descending order.
  • The solution set must not contain duplicate subsets.

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

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

Solution:

public class Solution {    public List<List<Integer>> subsets(int[] S) {        List<List<Integer>> result = new ArrayList<List<Integer>>();        List<Integer> list = new ArrayList<Integer>();        result.add(list);        Arrays.sort(S);        generate(result, S, 0, list);        return result;    }    void generate(List<List<Integer>> result, int[] set, int start, List<Integer> list) {        for (int i = start; i < set.length; i++) {            list.add(set[i]);            result.add(new ArrayList<Integer>(list));            generate(result, set, i+1, list);            list.remove(list.size()-1);        }    }}


0 0