首页 > 代码库 > [leetcode]Subsets

[leetcode]Subsets

Subsets

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

算法思路:

题中要求求出所有的,直接暴力吧,dfs

代码如下:

 1 public class Solution {  List<List<Integer>> res = new ArrayList<List<Integer>>(); 2     public List<List<Integer>> subsets(int[] s) { 3         if(s == null || s.length== 0) return res; 4         Arrays.sort(s); 5         List<Integer> list = new ArrayList<Integer>(); 6         dfs(list,0,0,s); 7         return res; 8     } 9     private void dfs(List<Integer> list,int k,int count,int[] s){10         if(count > s.length) return;11         if(count <= s.length){12             res.add(new ArrayList<Integer>(list));13         }14         for(int i = k; i < s.length; i++){15             list.add(s[i]);16             dfs(list,i + 1,count+1,s);17             list.remove(list.size() - 1);18         }19     }20     21 }