Backtracking - 90. Subsets II
时间:2022-07-25
本文章向大家介绍Backtracking - 90. Subsets II,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
90. Subsets II
Given a collection of integers that might contain duplicates, nums, return all possible subsets (the power set).
Note: The solution set must not contain duplicate subsets.
Example:
Input: [1,2,2]
Output:
[
[2],
[1],
[1,2,2],
[2,2],
[1,2],
[]
]
思路:
于78题相比,这题的数组中的元素可能重复,其实可以先对数组排序,然后再用dfs求解。
代码:
go:
func subsetsWithDup(nums []int) [][]int {
res := [][]int{[]int{}}
sort.Ints(nums)
doSubsetsWithDup(nums, []int{}, &res)
return res
}
func doSubsetsWithDup(nums []int, cur []int, res *[][]int) {
for i := 0; i < len(nums); i++ {
if i > 0 && nums[i] == nums[i-1] {
continue
}
cur = append(cur, nums[i])
*res = append(*res, append([]int{}, cur...))
doSubsetsWithDup(nums[i+1:], cur, res)
cur = cur[:len(cur)-1]
}
}
- WebVR如此近 - three.js的WebVR示例程序解析
- 【Dev Club分享】基于RxJava的一种MVP实现
- Android 动态链接库加载原理及 HotFix 方案介绍
- 如果裸写一个goroutine pool
- 【Dev Club 分享】微信 iOS SQLite 源码优化实践
- 移动客户端中高效使用 SQLite
- 【Dev Club 分享】微信热补丁 Tinker 的实践演进之路
- Android 进程保活招式大全
- 【Dev Club 分享】H5 视频直播那些事
- Android Patch 方案与持续交付
- Linux系统下MongoDB的简单安装与基本操作
- Go语言同步(Synchronization)
- 服务器反爬虫攻略:Apache/Nginx/PHP禁止某些User Agent抓取网站
- 【Dev Club分享】JSPatch成长之路
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python第五课——流程控制语句
- LNMP架构应用实战—Nginx反向代理负载均衡配置
- python第六课——判断结构
- MySQL数据库入门——备份数据库
- python第七课——循环结构 while
- python第八课——random模块的使用
- python第九课——while死循环
- python第十课——循环结构收尾
- python第十二课——for in循环
- Linux系统实战——批量无人值守安装操作系统
- python第十三课——嵌套循环
- python第十四课--排序及自定义函数
- python第十四课--排序及自定义函数之案例一:选择排序
- python第十四课--排序及自定义函数之案例二:冒泡排序
- python第十四课--排序及自定义函数之自定义函数(案例一)