Lintcode18 Subsets II solution 题解
【题目描述】
Given a list of numbers that may has duplicate numbers, return all possible subsets
Notice:Each element in a subset must be in non-descending order.The ordering between two subsets is free.The solution set must not contain duplicate subsets.
给定一个可能具有重复数字的列表,返回其所有可能的子集
注意:子集中的每个元素都是非降序的;两个子集间的顺序是无关紧要的;解集中不能包含重复子集
【题目链接】
http://www.lintcode.com/en/problem/subsets-ii/
【题目解析】
经典的DFS问题,如果有跟过九章微博的同学 应该会相当熟悉这个套路,跟前一个题目SubSet的区别是,有了重复的问题。怎么解决呢?
很简单。在每一次选数字的时候,只选第一个重复的数字,不选后面的,这样就不会有重复的set出现了。这里肯定有同学问了,如果你只选第一个,那222这种组合怎么弄出来?答案是:用递归时就不要考虑太多,只要考虑当前的情况。
例子: 1 2 2 2 2 3 4
那么你得到2 2 2 的过程是三层递归,每一层 都只选当前index开始的第一个2,所以2 2 2 还是可以组出来的。而且不会组出重复的,因为每一层递归你没有考虑重复,这就可以了。
还是要记住递归的精髓:考虑本层递归就好,别想太多
【答案链接】
https://www.jiuzhang.com/solutions/subsets-ii/
转载于:https://blog.51cto.com/12799252/1920722
Lintcode18 Subsets II solution 题解相关推荐
- Lintcode42 Maximum Subarray II solution 题解
[题目描述] Given an array of integers, find two non-overlapping subarrays which have the largest sum.The ...
- 90. Subsets II 1
题目: Given a collection of integers that might contain duplicates, nums, return all possible subsets. ...
- 90. Subsets II
Given a collection of integers that might contain duplicates, nums, return all possible subsets (the ...
- LeetCode 90. Subsets II
90. Subsets II Given a collection of integers that might contain duplicates, nums, return all possib ...
- 【暴力枚举】LeetCode 90. Subsets II
LeetCode 90. Subsets II solution1和2均是利用set的,3和4是不利用set的 Solution1:我的答案 迭代法 class Solution { public:v ...
- 递归/回溯:Subsets II求子集(有重复元素)
上一篇描述了针对数组中没有重复元素进行子集的求取过程递归/回溯:subsets求子集 但是当出现如下数组时: 例如: nums[] = [2, 1, 2, 2] 结果为: [[], [1], [1,2 ...
- 90 Subsets II
90 Subsets II leetcode第90题,用深度优先搜索的思路写出了三种不同的代码.一道题目,同样是深度优先搜索的问题,因为看问题角度不同,思路不同,代码也不一样 /*** [1,2,2, ...
- 【Lintcode】018.Subsets II
题目: Given a list of numbers that may has duplicate numbers, return all possible subsets Notice Each ...
- [Leetcode]@python 90. Subsets II.py
题目链接 https://leetcode.com/problems/subsets-ii/ 题目原文 Given a collection of integers that might contai ...
最新文章
- SIFT特征点匹配中KD-tree与Ransac算法的使用
- ActiveMQ5.14.5配置参数详解
- C++知识点46——类继承中的类型转换与访问权限控制(中)
- Java 8 中 Date与LocalDateTime、LocalDate、LocalTime互转
- python绘制滑稽脸_用Python画滑稽
- 西安工业大学计算机全国排名,西安工业大学北方信息工程学院排名2018年下滑14名 在独立学院中实力排全国第138名...
- 博客园-vb随笔列表
- 内存:DDR2与DDR
- HBase预分区设计
- Excel_一维二维表转换(行列转换)的几种方法
- 三轴加速度传感器 角度值 转换原理
- linux 下打包可执行程序
- 徐磊英语 4 5 时态,被动,时态的错误定义
- 学习区块链要掌握哪些专项能力?区块链学习培训多长时间?
- 互联网时代,你从事的职业会被人工智能替代吗?
- 2022电大国家开放大学网上形考任务-建设项目管理非免费(非答案)
- PHP之MySQL笔记4
- 12 本最具影响力的程序员书籍
- 要不要考PMP项目管理培训?
- C语言 求两点之间线段距离