本文共 679 字,大约阅读时间需要 2 分钟。
找存在重复数字的数组的子数组。
回溯+判断(保证res内不重复)
public class Solution { public List
> subsetsWithDup(int[] nums) { List
> res = new LinkedList<>(); if (nums == null) { return res; } Arrays.sort(nums); res.add(new LinkedList<>()); dfs(nums, 0, res, new LinkedList<>()); return res; } private void dfs(int[] nums, int pos, List
> res, LinkedList temp) { for (int i = pos; i < nums.length; i++) { // 保证res内元素不重复的关键 if (i != pos && nums[i] == nums[i - 1]) { continue; } temp.add(nums[i]); res.add(new LinkedList (temp)); dfs(nums, i + 1, res, temp); temp.remove(temp.size() - 1); } }}
转载地址:http://ivhld.baihongyu.com/