Lintcode18SubsetsIIsolution题解-创新互联

【题目描述】

10年积累的成都网站设计、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站策划后付款的网站建设流程,更有亭湖免费网站建设让你可以放心的选择与我们合作。

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/

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文名称:Lintcode18SubsetsIIsolution题解-创新互联
地址分享:http://myzitong.com/article/ecejp.html