首页 > 其他 > 详细

leetcode JAVA Subsets II 4.26 难度系数4

时间:2014-03-10 17:42:39      阅读:361      评论:0      收藏:0      [点我收藏+]

Given a collection of integers that might contain duplicates, 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,2], a solution is:

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

public class Solution {
    public ArrayList<ArrayList<Integer>> subsetsWithDup(int[] num) {
        ArrayList<ArrayList<Integer>> results  = new ArrayList<ArrayList<Integer>>();
        ArrayList<Integer> result = new ArrayList<Integer>();
        Arrays.sort(num);
        dfs(num,0,result,results);
        return results;
    }
	private void dfs(int[] num, int step, ArrayList<Integer> result,
			ArrayList<ArrayList<Integer>> results) {
		if(!results.contains(result))
		    results.add(new ArrayList<Integer>(result));
		for(int i=step;i<num.length;i++){
			result.add(num[i]);
			dfs(num, i+1, result, results);
			result.remove(result.size()-1);
		}
	}
}

跟上题一样,可以2种方式加上去除重复。
第二种去重:
public class Solution {
    public ArrayList<ArrayList<Integer>> subsetsWithDup(int[] num) {
        ArrayList<ArrayList<Integer>> results  = new ArrayList<ArrayList<Integer>>();
        ArrayList<Integer> result = new ArrayList<Integer>();
        Arrays.sort(num);
        dfs(num,0,result,results);
        return results;
    }

	private void dfs(int[] num, int step, ArrayList<Integer> result,
			ArrayList<ArrayList<Integer>> results) {
		results.add(new ArrayList<Integer>(result));
		for(int i=step;i<num.length;i++){
			if(i!=step&&num[i]==num[i-1])
				continue;
			result.add(num[i]);
			dfs(num, i+1, result, results);
			result.remove(result.size()-1);
		}
	}
}


leetcode JAVA Subsets II 4.26 难度系数4,布布扣,bubuko.com

leetcode JAVA Subsets II 4.26 难度系数4

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

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