标签:
Given a set of distinct integers, S, return all possible subsets.
Note:
For example,
If S = [1,2,3]
, a solution is:
DSF
package leetcode2; import java.util.*; public class subset { public static ArrayList<ArrayList<Integer>> subset(int[] n){ ArrayList<ArrayList<Integer>> res=new ArrayList<ArrayList<Integer>>(); ArrayList<Integer> mem=new ArrayList<Integer>(); ArrayList<Integer> mem2=new ArrayList<Integer>(); int deep=0; res.add(null); for(int i=0;i<n.length;i++){ mem2.add(n[i]); } res.add(mem2); dfs(res,mem,deep,n); return res; } public static void dfs(ArrayList<ArrayList<Integer>> res, ArrayList<Integer> mem, int deep,int[] n) { // TODO Auto-generated method stub if(deep==n.length){ ArrayList<Integer> re= new ArrayList<Integer>(mem) ; Collections.sort(re); if(!res.contains(re)){ res.add(re); } return; } if(deep<n.length){ for(int i=0;i<n.length;i++){ if(!mem.contains(n[i])){ mem.add(n[i]); } dfs(res,mem,deep+1,n); if(mem.size()>0){ mem.remove(mem.size()-1) ; } } } if(deep>n.length){ return; } } public static void main(String[] args) { // TODO Auto-generated method stub int[] a={1,2,3}; System.out.println(subset(a)); } }
标签:
原文地址:http://www.cnblogs.com/joannacode/p/4395966.html