首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
集合的所有子集(一)
[编程题]集合的所有子集(一)
热度指数:42739
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 256M,其他语言512M
算法知识视频讲解
现在有一个没有重复元素的整数集合S,求S的所有子集
注意:
你给出的子集中的元素必须按升序排列
给出的解集中不能出现重复的元素
数据范围:
,集合中的任意元素满足
要求:空间复杂度
,时间复杂度
示例1
输入
[1,2,3]
输出
[[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]]
示例2
输入
[]
输出
[]
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(6)
邀请回答
收藏(423)
分享
提交结果有问题?
143个回答
79篇题解
开通博客
牛一霸
发表于 2021-07-08 22:49:35
精华题解
题目:集合中的所有子集 描述:现在有一个没有重复元素的整数集合S,求S的所有子集 注意:你给出的子集中的元素必须按升序排列,给出的解集中不能出现重复的元素。 示例1:输入:[1,2,3],返回值:[[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]]
展开全文
ButterFlyEffect
发表于 2020-10-26 20:28:08
递归+回溯直接搞定题目要求需要升序排列,所以提前将S sort一下就可以了。从0开始,每个位置都从之后的所有位置开始新一轮的选择。 class Solution { public: vector<vector<int> > vres; vector<ve
展开全文
钰袖
发表于 2021-06-05 12:36:47
两种方法: 一. 回溯: C++: class Solution { public: vector<vector<int>>result; vector<int>path; void backtracing(vector<in
展开全文
代码界的小白
发表于 2021-11-29 22:04:02
题目主要信息 1、重复元素的整数集合S,求S的所有子集 2、子集中的元素必须按升序排列 3、给出的解集中不能出现重复的元素 方法一:回溯 看到这题就直接想到的就是回溯,把回溯的模板修改一下就行。 具体做法 由于题目要求子集中的元素需要升序排列,所以先对初试的数组进行排序,然后在使用回溯法求解。 举例
展开全文
小洋芋热爱NLP
发表于 2021-09-13 14:48:34
- 题目描述:- 题目链接:https://www.nowcoder.com/practice/c333d551eb6243e0b4d92e37a06fbfc9?tpId=196&&tqId=37065&rp=1&ru=/ta/job-code-total&q
展开全文
小灰灰QAQ
发表于 2021-11-26 10:03:03
1.题目 描述 现在有一个没有重复元素的整数集合S,求S的所有子集 注意: 你给出的子集中的元素必须按升序排列 给出的解集中不能出现重复的元素 数据范围:1≤n≤5,集合中的任意元素满足∣val∣≤10 要求:空间复杂度 O(n!),时间复杂度 O(n!) 示例1 输入: [1,2,3] 返回值:
展开全文
牛客768685351号
发表于 2022-02-26 21:12:15
class Solution { private: vector<vector<int>> res; vector<int> path; public: vector<vector<int> > subsets(ve
展开全文
一起看星星
发表于 2021-08-03 10:34:09
思路:每个数字在子集中有两种情况,一种是不包含自己,另一种是包含自己。因此,可通过回溯法来记录每个数字分别在这两种情况下的组合。 import java.util.*; public class Solution { int
展开全文
ToBe-YOU
发表于 2021-12-31 23:15:05
1. 递归 每次递归,当前位置的数字可以选择或者不选择。 class Solution { public: vector<vector<int> > res; void dfs(vector<int>& S, vector<int&g
展开全文
在攒经验的他很踏实
发表于 2022-06-02 17:03:13
集合问题看作回溯中的多叉树深度优先遍历,关键部分是二维数组头部的index和走过的路径path for循环中的push和pop操作是对当前位的数字替换,bt回溯是增加位的操作 * * @param A int整型一维数组 * @return int整型二维数组 */ function
展开全文
jing_zhong
发表于 2021-09-20 20:21:01
题目描述:现在有一个没有重复元素的整数集合S,求S的所有子集 注意:你给出的子集中的元素必须按升序排列,给出的解集中不能出现重复的元素示例1 &nb
展开全文
问题信息
位运算
数组
回溯
难度:
143条回答
423收藏
24916浏览
热门推荐
通过挑战的用户
查看代码
牛客11456...
2022-09-20 16:05:50
牛客13623...
2022-09-15 14:34:59
coldzero11
2022-09-15 14:01:21
亦携书剑
2022-09-15 10:56:24
牛客24353...
2022-09-14 21:34:42
相关试题
Skew数
基础数学
位运算
评论
(49)
旅行Ⅱ
动态规划
位运算
评论
(1)
农夫、羊、菜和狼的故事
搜索
回溯
思维
评论
(49)
相邻的糖果
贪心
评论
(3)
在 Bash 脚本中执行以下代码片...
Linux
评论
(1)
集合的所有子集(一)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param S int整型一维数组 * @return int整型ArrayList
> */ public ArrayList
> subsets (int[] S) { // write code here } }
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param S int整型vector * @return int整型vector
> */ vector
> subsets(vector
& S) { // write code here } };
#coding:utf-8 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param S int整型一维数组 # @return int整型二维数组 # class Solution: def subsets(self , S ): # write code here
using System; using System.Collections.Generic; class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param S int整型一维数组 * @return int整型二维数组 */ public List
> subsets (List
S) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param S int整型一维数组 * @return int整型二维数组 */ function subsets( S ) { // write code here } module.exports = { subsets : subsets };
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param S int整型一维数组 # @return int整型二维数组 # class Solution: def subsets(self , S: List[int]) -> List[List[int]]: # write code here
package main import "fmt" /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param S int整型一维数组 * @return int整型二维数组 */ func subsets( S []int ) [][]int { // write code here }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param S int整型一维数组 * @param SLen int S数组长度 * @return int整型二维数组 * @return int* returnSize 返回数组行数 * @return int** returnColumnSizes 返回数组列数 */ int** subsets(int* S, int SLen, int* returnSize, int** returnColumnSizes ) { // write code here }
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param S int整型一维数组 # @return int整型二维数组 # class Solution def subsets(S) # write code here end end
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param S int整型一维数组 * @return int整型二维数组 */ def subsets(S: Array[Int]): Array[Array[Int]] = { // write code here } }
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param S int整型一维数组 * @return int整型二维数组 */ fun subsets(S: IntArray): Array
{ // write code here } }
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param S int整型一维数组 * @return int整型二维数组 */ public int[][] subsets (int[] S) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param S int整型一维数组 * @return int整型二维数组 */ export function subsets(S: number[]): number[][] { // write code here }
public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param S int整型一维数组 * @return int整型二维数组 */ func subsets ( _ S: [Int]) -> [[Int]] { // write code here } }
struct Solution{ } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param S int整型一维数组 * @return int整型二维数组 */ pub fn subsets(&self, S: Vec
) -> Vec
> { // write code here } }
[1,2,3]
[[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]]
[]
[]