首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
集合的所有子集(一)
[编程题]集合的所有子集(一)
热度指数:42189
时间限制: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)
邀请回答
收藏(420)
分享
提交结果有问题?
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
展开全文
牛客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
展开全文
小灰灰QAQ
发表于 2021-11-26 10:03:03
1.题目 描述 现在有一个没有重复元素的整数集合S,求S的所有子集 注意: 你给出的子集中的元素必须按升序排列 给出的解集中不能出现重复的元素 数据范围:1≤n≤5,集合中的任意元素满足∣val∣≤10 要求:空间复杂度 O(n!),时间复杂度 O(n!) 示例1 输入: [1,2,3] 返回值:
展开全文
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条回答
420收藏
23441浏览
热门推荐
通过挑战的用户
查看代码
牛客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
相关试题
旅行Ⅱ
动态规划
位运算
评论
(1)
农夫、羊、菜和狼的故事
搜索
回溯
思维
评论
(49)
矩阵中的路径
回溯
dfs
评论
(966)
约瑟夫环
过关题目
语言题
评论
(1)
测试ATM取款功能,已知取款数只能...
软件测试
评论
(0)
集合的所有子集(一)
扫描二维码,关注牛客网
意见反馈
下载牛客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]]
[]
[]