# 0090. Subsets II ###### tags: `Leetcode` `Medium` `Backtracking` `DFS` Link: https://leetcode.com/problems/subsets-ii/ ## 思路 和[0040. Combination Sum II](https://hackmd.io/cOOug_AXSUeBnJKIjdF2IA)有点像 都是要找不重复的子集 典型backtracking问题 ## Code ```java= class Solution { public List<List<Integer>> subsetsWithDup(int[] nums) { Arrays.sort(nums); List<List<Integer>> ans = new ArrayList<>(); dfs(ans, nums, new ArrayList<>(), 0); return ans; } private void dfs(List<List<Integer>> ans, int[] nums, List<Integer> curr, int start){ ans.add(new ArrayList<>(curr)); for(int i=start; i<nums.length; i++){ if(i>start && nums[i]==nums[i-1]) continue; curr.add(nums[i]); dfs(ans, nums, curr, i+1); curr.remove(curr.size()-1); } } } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up