首页 > 其他 > 详细

leetcode JAVA Subsets 难度系数3 3.27

时间:2014-02-01 15:16:40      阅读:468      评论:0      收藏:0      [点我收藏+]

Question:

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],
  []
]
public class Solution {
   public ArrayList<ArrayList<Integer>> subsets(int[] S) {
        ArrayList<ArrayList<Integer>> results = new ArrayList<ArrayList<Integer>>();
        ArrayList<Integer> result = new ArrayList<Integer>();
        Arrays.sort(S);
        dfs(S,result,0,results);
        return results;
    }

	private void dfs(int[] s, ArrayList<Integer> result, int step,
			ArrayList<ArrayList<Integer>> results) {
		if(step==s.length){
			ArrayList<Integer> path = new ArrayList<Integer>(result);
			results.add(path);
			return;
		}
		dfs(s,result,step+1,results);
		result.add(s[step]);
		dfs(s,result,step+1,results);
		result.remove(result.size()-1);
		
	}
}


leetcode JAVA Subsets 难度系数3 3.27

原文:http://blog.csdn.net/yiding_he/article/details/18893619

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!