Leetcode-subsets-ii ***
来源:互联网 发布:人脸识别和人工智能 编辑:程序博客网 时间:2024/05/16 05:13
回溯!!!
题目描述
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], []]
这是一种解答,利用递归的方式。
import java.util.*;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);}}}
下面是另一种解答:
public ArrayList<ArrayList<Integer>> subsetsWithDup1(int[] num) {ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>();if(num == null || num.length == 0){return res;}Arrays.sort(num);res.add(new ArrayList<Integer>());for(int i=0; i<num.length; i++){int size = res.size();for(int j=0; j<size; j++){ArrayList<Integer> elem = new ArrayList<Integer>(res.get(j));elem.add(num[i]);if(! res.contains(elem))res.add(elem);}}return res;}
这个题目我觉得挺难的。
0 0
- 【LeetCode】 Subsets Subsets II
- 【LeetCode】Subsets & Subsets II
- LeetCode Subsets && Subsets II
- LeetCode Subsets && Subsets II
- LeetCode-Subsets & Subsets II
- [LeetCode] Combinations、Subsets、Subsets II
- 【Leetcode】【python】Subsets/Subsets II
- LeetCode: Subsets II
- LeetCode SubSets II
- LeetCode: Subsets II
- leetcode 48: Subsets II
- [LeetCode] Subsets II
- [Leetcode] Subsets II
- [leetcode] Subsets II
- leetcode Subsets II
- leetcode Subsets II problem
- [LeetCode]Subsets II
- [leetcode]Subsets II
- iOS 获取验证码读秒时,按下home键,重新进app时,保证读秒正常进行
- Spring JdbcTemplate的配置及使用
- 01、 java 数据类型
- 自动生成module
- Java Properties类以及读写操作
- Leetcode-subsets-ii ***
- Android MTK 修改蓝牙地址随机生成
- 常用正则表达式
- Linux,Mac安装、配置、启动 rabbitMQ
- mongodb学习链接
- Android通用流行框架大全
- onclick和innerHTML的用法小实例
- jQuery模拟自动补全
- IntelliJ IDEA导航特性Top20