leetcode 【 Subsets II 】python 实现
题目:
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],
[]
]
代码:oj测试通过 Runtime: 78 ms
class Solution:
# @param num, a list of integer
# @return a list of lists of integer
def dfs(self, start, S, result, father_elements):
if father_elements in result:
return
result.append(father_elements)
for i in range(start, len(S)):
self.dfs(i+1, S, result, father_elements+[S[i]]) def subsetsWithDup(self, S):
# none case
if S is None:
return []
# deep first search
result = []
first_depth = {}
self.dfs(0, sorted(S), result, [])
return result
思路:
大体思路跟Subsets差不多,详情见:
http://www.cnblogs.com/xbf9xbf/p/4253208.html
只需要每次向result中添加子集时注意判断一下这个子集是否已经存在。如果存在那么就直接返回,不做处理。
leetcode 【 Subsets II 】python 实现的更多相关文章
- [leetcode]Subsets II @ Python
		
原题地址:https://oj.leetcode.com/problems/subsets-ii/ 题意: Given a collection of integers that might cont ...
 - LeetCode Subsets II (DFS)
		
题意: 给一个集合,有n个可能相同的元素,求出所有的子集(包括空集,但是不能重复). 思路: 看这个就差不多了.LEETCODE SUBSETS (DFS) class Solution { publ ...
 - [LeetCode] Subsets II 子集合之二
		
Given a collection of integers that might contain duplicates, S, return all possible subsets. Note: ...
 - [Leetcode] Subsets II
		
Given a collection of integers that might contain duplicates, S, return all possible subsets. Note: ...
 - [leetcode]Permutations II @ Python
		
原题地址:https://oj.leetcode.com/problems/permutations-ii/ 题意: Given a collection of numbers that might ...
 - [leetcode]N-Queens II @ Python
		
原题地址:https://oj.leetcode.com/problems/n-queens-ii/ 题意:和N-Queens这道题其实是一样的,只不过这次要求返回的时N皇后的解的个数的问题. 解题思 ...
 - [LeetCode] Subsets II [32]
		
题目 Given a collection of integers that might contain duplicates, S, return all possible subsets. Not ...
 - [Leetcode] subsets ii 求数组所有的子集
		
Given a collection of integers that might contain duplicates, S, return all possible subsets. Note: ...
 - [LeetCode]Subsets II生成组合序列
		
class Solution {//生成全部[不反复]的组合.生成组合仅仅要採用递归,由序列从前往后遍历就可以. 至于去重,依据分析相应的递归树可知.同一个父节点出来的两个分支不能一样(即不能与前一个 ...
 - LeetCode:Subsets I II
		
求集合的所有子集问题 LeetCode:Subsets Given a set of distinct integers, S, return all possible subsets. Note: ...
 
随机推荐
- 快速获取雪碧图的图标样式插件 - gulp-css-spriter教程
			
如何快速把合成好的雪碧图,快速获取图标的样式呢? 用gulp-css-spriter很简单. 第一步: 在某个文件夹用shitf+鼠标右键 第二步: npm install gulp-css-spri ...
 - mysql 疑难问题-django
			
1不能存储中文 问题解决1: 确认表设计时,字段name_vn字符集是utf8,改成utf8后可以存储中文
 - AOJ 558 Cheese(bfs)
			
题意:网格图,老鼠吃奶酪,吃完奶酪体力值会增加,只能吃硬度不大于体力值的,问最小步数. 思路:按硬度从小到大的吃起,依次求最短路. 我用曼哈顿距离估价的A*,和普通bfs的time没区别啊,还把优先级 ...
 - 博弈论经典算法(一)——对抗搜索与Alpha-Beta剪枝
			
前言 在一些复杂的博弈论题目中,每一轮操作都可能有许多决策,于是就会形成一棵庞大的博弈树. 而有一些博弈论题没有什么规律,针对这样的问题,我们就需要用一些十分玄学的算法. 例如对抗搜索. 对抗搜索简介 ...
 - AngularJS 数字
			
AngularJS数字就像JavaScript数字 AngularJS实例: <!DOCTYPE html><html><head><meta http-eq ...
 - webpack4.x ,1基本项目构建 详解
			
1.先创建个文件夹 比如叫 webApp 用编译器打开 2.安装全局的webpack 和webpack-cli 及 webpack-dev-server 命令如下 npm install webpac ...
 - caller、callee的用法及区别
			
1 :caller 返回一个调用当前函数的引用 如果是由顶层调用的话 则返回null (举个栗子哈 caller给你打电话的人 谁给你打电话了 谁调用了你 很显然是下面a函数的执行 只有在打电话的时 ...
 - 1911: [Apio2010]特别行动队
			
Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 5706 Solved: 2876[Submit][Status][Discuss] Descriptio ...
 - Linux分享笔记:查看帮助命令 & 常用系统工作命令
			
在执行命令时,为了防止出现权限不足的问题,在登陆Linux系统时,要点击普通用户名下的 “Not listed?” 用root管理员身份登陆. [1] 执行查看帮助命令 man 这条命令用来查看帮助文 ...
 - struts2、hibernate和SSH的实现
			
Struts2 为什么开发Struts框架? 为了符合更加灵活.高效的开发需求 实质上Struts2是以WebWork为核心的,他采用拦截机制来处理用户请求. (1)Jsp部分 <%@ page ...