您的位置:首页 > 其它

Subsets II

2015-07-07 11:29 429 查看
public class Solution {
public List<List<Integer>> subsetsWithDup(int[] nums) {
List<List<Integer>> result = new ArrayList<List<Integer>>();
if (nums == null || nums.length < 1) {
return result;
}
List<Integer> level = new ArrayList<Integer>();
Arrays.sort(nums);
dfs(result, level, 0, nums);
return result;
}
private void dfs(List<List<Integer>> result, List<Integer> level, int loc, int[] nums) {
result.add(new ArrayList<Integer>(level));
for (int i = loc; i < nums.length; i++) {
if (i != loc&& nums[i] == nums[i - 1]) {
continue;
}
level.add(nums[i]);
dfs(result, level, i + 1, nums);
level.remove(level.size() - 1);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Array Backtracking