【题目描述】

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 题解相关推荐

  1. Lintcode42 Maximum Subarray II solution 题解

    [题目描述] Given an array of integers, find two non-overlapping subarrays which have the largest sum.The ...

  2. 90. Subsets II 1

    题目: Given a collection of integers that might contain duplicates, nums, return all possible subsets. ...

  3. 90. Subsets II

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

  4. LeetCode 90. Subsets II

    90. Subsets II Given a collection of integers that might contain duplicates, nums, return all possib ...

  5. 【暴力枚举】LeetCode 90. Subsets II

    LeetCode 90. Subsets II solution1和2均是利用set的,3和4是不利用set的 Solution1:我的答案 迭代法 class Solution { public:v ...

  6. 递归/回溯:Subsets II求子集(有重复元素)

    上一篇描述了针对数组中没有重复元素进行子集的求取过程递归/回溯:subsets求子集 但是当出现如下数组时: 例如: nums[] = [2, 1, 2, 2] 结果为: [[], [1], [1,2 ...

  7. 90 Subsets II

    90 Subsets II leetcode第90题,用深度优先搜索的思路写出了三种不同的代码.一道题目,同样是深度优先搜索的问题,因为看问题角度不同,思路不同,代码也不一样 /*** [1,2,2, ...

  8. 【Lintcode】018.Subsets II

    题目: Given a list of numbers that may has duplicate numbers, return all possible subsets Notice Each ...

  9. [Leetcode]@python 90. Subsets II.py

    题目链接 https://leetcode.com/problems/subsets-ii/ 题目原文 Given a collection of integers that might contai ...

最新文章

  1. SIFT特征点匹配中KD-tree与Ransac算法的使用
  2. ActiveMQ5.14.5配置参数详解
  3. C++知识点46——类继承中的类型转换与访问权限控制(中)
  4. Java 8 中 Date与LocalDateTime、LocalDate、LocalTime互转
  5. python绘制滑稽脸_用Python画滑稽
  6. 西安工业大学计算机全国排名,西安工业大学北方信息工程学院排名2018年下滑14名 在独立学院中实力排全国第138名...
  7. 博客园-vb随笔列表
  8. 内存:DDR2与DDR
  9. HBase预分区设计
  10. Excel_一维二维表转换(行列转换)的几种方法
  11. 三轴加速度传感器 角度值 转换原理
  12. linux 下打包可执行程序
  13. 徐磊英语 4 5 时态,被动,时态的错误定义
  14. 学习区块链要掌握哪些专项能力?区块链学习培训多长时间?
  15. 互联网时代,你从事的职业会被人工智能替代吗?
  16. 2022电大国家开放大学网上形考任务-建设项目管理非免费(非答案)
  17. PHP之MySQL笔记4
  18. 12 本最具影响力的程序员书籍
  19. 要不要考PMP项目管理培训?
  20. C语言 求两点之间线段距离

热门文章

  1. 明星软件工程师的十种特质
  2. oracle apex接口文件,Oracle之APEX深入开发指南
  3. 个人博客前端模板_博客设计——概述
  4. 剑指offer 算法 (知识迁移能力)
  5. linux ``与 ''区别
  6. 跨域、ContentType组件
  7. 24.下拉列表的交互事件
  8. Android ImageLoader(Android-Universal-Image-Loader)【1】概述及使用简单介绍
  9. 翻译关于ViewController的一篇文章
  10. FFMPEG命令行处理视频进阶——高阶必读