90. Subsets II

网友投稿 606 2022-09-04

90. Subsets II

90. Subsets II

Given a collection of integers that might contain duplicates, nums, return all possible subsets (the power set).

Note: The solution set must not contain duplicate subsets.

For example, If nums = [1,2,2], a solution is:

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

思路: 将递归的输入为当前的结果集,当前的数组,和遍历的起始下标。在递归中将起始下标后的值依次加入当前结果集,并将结果集加入结果集数组中。如果遇到重复的数字,则继续遍历下一个数字,直至遍历结束。

class Solution { public List> subsetsWithDup(int[] nums) { List> fnl = new ArrayList>(); Arrays.sort(nums); helper(fnl, new ArrayList(), nums, 0); return fnl; } public void helper(List> fnl, List temp, int[] nums, int start){ fnl.add(new ArrayList(temp)); for(int i = start; i < nums.length; i++){ if(i > start && nums[i] == nums[i-1]) continue; temp.add(nums[i]); helper(fnl, temp, nums, i+1); temp.remove(temp.size()-1); } }}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:160. Intersection of Two Linked Lists
下一篇:逼格高又实用的 Linux 命令,开发可以多掌握一些
相关文章

 发表评论

暂时没有评论,来抢沙发吧~