Subsets

来源:互联网 发布:ubuntu火狐下载的软件 编辑:程序博客网 时间:2024/06/05 02:58

Given a set of distinct integers, nums, 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 nums = [1,2,3], a solution is:

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

在每次循环中先放tmp中放入空元素,在放入result的结果,再放入num[i];

过程大致类似:放入1,再放入[1,2],[2],再放入[1,2,3],[2,3],[3],result将这些全部放入。

public class Solution {    public List<List<Integer>> subsets(int[] nums) {        ArrayList<List<Integer>> result = new ArrayList<List<Integer>>();           if(nums==null)              return result;          Arrays.sort(nums);          for (int i = 0; i < nums.length; i++) {               ArrayList<List<Integer>> tmp = new ArrayList<List<Integer>>();             tmp.add(new ArrayList<Integer>());             for(List<Integer> l : result)                  tmp.add(new ArrayList<Integer>(l));              for(List<Integer> l : tmp)                  l.add(nums[i]);              result.addAll(tmp);          }            result.add(new ArrayList<Integer>());          return result;      }}


0 0
原创粉丝点击