78. Subsets

来源:互联网 发布:看美剧哪个软件好 编辑:程序博客网 时间:2024/05/16 08:42

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],  []]

Subscribe to see which companies asked this question.

public class Solution {    public List<List<Integer>> subsets(int[] nums) {List<List<Integer>> re = new ArrayList<List<Integer>>();if (nums.length == 0)return re;boolean[] data = new boolean[nums.length];backtracking(data, nums, 0, nums.length, re);return re;}static void backtracking(boolean[] data, int[] nums, int deep, int length, List<List<Integer>> re) {if (deep == length) {List<Integer> temp = new ArrayList<Integer>();for (int i = 0; i < length; ++i) {if (data[i])temp.add(nums[i]);}re.add(temp);return;}data[deep] = true;backtracking(data, nums, deep + 1, length, re);data[deep] = false;backtracking(data, nums, deep + 1, length, re);}}


0 0