本题是回溯法的基本应用,深度优先遍历,使用递归实现。

class Solution {
public:
int x[];
vector<vector<int>> R; int n;
//t当前查询的位置
void BackTrack(vector<int> nums, int t)
{
if (t >= n)//达到叶子节点
{
vector<int> V;
for (int i = ; i < n; i++)
{
if (x[i] == )
{
V.push_back(nums[i]);
}
}
R.push_back(V);
return;
}
x[t] = ;
BackTrack(nums, t + ); x[t] = ;
BackTrack(nums, t + );
} vector<vector<int>> subsets(vector<int>& nums) {
n = nums.size();
memset(x, , sizeof(x));
BackTrack(nums, );
return R;
}
};

补充一个python版本:

 class Solution:
def __init__(self):
self.L = list()
self.N = 0 def backTrack(self,nums,index,l):
if index >= self.N:
self.L.append(l[:])
return
l.append(nums[index])
self.backTrack(nums,index+1,l) l.pop(-1)
self.backTrack(nums,index+1,l) def subsets(self, nums: 'List[int]') -> 'List[List[int]]':
self.N = len(nums)
l = list()
self.backTrack(nums,0,l)
return self.L

leetcode78的更多相关文章

  1. 【leetcode78】Single Number II

    题目描述: 给定一个数组,里面除了一个数字,其他的都出现三次.求出这个数字 原文描述: Given an array of integers, every element appears three ...

  2. [Swift]LeetCode78. 子集 | Subsets

    Given a set of distinct integers, nums, return all possible subsets (the power set). Note: The solut ...

  3. LeetCode78:Subsets

    Given a set of distinct integers, nums, return all possible subsets. Note: Elements in a subset must ...

  4. 【leetcode-78 dfs+回溯】 子集

    子集 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [ [3],   [1],   ...

  5. Leetcode78. Subsets子集

    给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [ [3],   [1],   [2 ...

  6. leetcode78.子集➕90.子集2

    78子集 dfs dfs1: 和全排列的区别就是对于当前考察的索引i,全排列如果不取i,之后还要取i,所以需要一个visited数组用来记录.对于子集问题如果不取i,之后也不必再取i. 单纯递归回溯 ...

  7. Leetcode78/90/491之回溯中的子集问题

    回溯之子集问题 子集问题和组合问题特别像 Leetcode78-子集 给你一个整数数组 nums ,数组中的元素 互不相同 .返回该数组所有可能的子集(幂集) 解集 不能 包含重复的子集.你可以按 任 ...

  8. leetcode 78,236,300

    ---恢复内容开始--- 2018.3.16目前已刷27题,打卡记录有意思的题目. leetcode78 subsets 思路1:DFS遍历子集,每遇到一个数就把该数加上原来的子集变成新的子集. cl ...

  9. [Leetcode 90]求含有重复数的子集 Subset II

    [题目] Given a collection of integers that might contain duplicates, nums, return all possible subsets ...

随机推荐

  1. Hadoop学习笔记05_HA

    ################# HA 即 High Available 高可用.# 其作用是为了减少主从结构的单点故障,而设置备用节点,既然学习了Hadoop生态圈,那么HA配置也是必须要掌握的. ...

  2. oracle密码过期的修改

    ALTER USER 用户名 IDENTIFIED BY 密码 ;

  3. 使用css时的一些技巧及注意事项

    <!-- TITLE: 使用css时的一些技巧及注意事项 --> # CSS推荐书写顺序: 1. 位置属性(position, top, right, z-index, display, ...

  4. 剑指Offer 32. 把数组排成最小的数 (数组)

    题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 题目地址 h ...

  5. IOS Block代码块的定义与使用

    代码块的本质是和其他的变量类似,不同的是,代码块存储的数据是一个函数体.使用代码块,你可以像调用其他标准函数一样的调用,可以传入参数,并得到返回值.     脱字符是代码块的语法标记.下图表示代码块的 ...

  6. 定义action的允许访问方式

    publicfunction behaviors() { return[ 'verbs'=>[ 'class'=>VerbFilter::className(), 'actions'=&g ...

  7. 【EMV L2】SDA静态数据认证处理流程

    [静态数据认证] 静态数据认证处理过程中,卡片没有执行任何处理,终端执行的处理流程:1.认证中心公钥的获取终端使用卡片上的认证中心公钥索引(PKI)[TAG:8F,Certification Auth ...

  8. django中利用FastDFS来上传图片的流程

    好处:海量问题,存储容量扩展方便,文件内容重复并且对静态文件的访问也有了提升等.

  9. 创建ApplicationContext与BeanFactory时的区别-Spring源码学习之容器的基本实现

    传送门 可以加载XML两种方法 使用 BeanFactory 加载 XML BeanFactory bf = new XmlBeanFactory(new ClassPathResource(&quo ...

  10. Mat的详解

    [转]OpenCV中Mat的详解 每次碰到Mat都得反复查具体的用法,网上的基础讲解不多,难得看到一篇,赶快转来收藏~ 原文地址:http://www.opencvchina.com/thread-1 ...