leetcode78
本题是回溯法的基本应用,深度优先遍历,使用递归实现。
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的更多相关文章
- 【leetcode78】Single Number II
题目描述: 给定一个数组,里面除了一个数字,其他的都出现三次.求出这个数字 原文描述: Given an array of integers, every element appears three ...
- [Swift]LeetCode78. 子集 | Subsets
Given a set of distinct integers, nums, return all possible subsets (the power set). Note: The solut ...
- LeetCode78:Subsets
Given a set of distinct integers, nums, return all possible subsets. Note: Elements in a subset must ...
- 【leetcode-78 dfs+回溯】 子集
子集 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [ [3], [1], ...
- Leetcode78. Subsets子集
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2 ...
- leetcode78.子集➕90.子集2
78子集 dfs dfs1: 和全排列的区别就是对于当前考察的索引i,全排列如果不取i,之后还要取i,所以需要一个visited数组用来记录.对于子集问题如果不取i,之后也不必再取i. 单纯递归回溯 ...
- Leetcode78/90/491之回溯中的子集问题
回溯之子集问题 子集问题和组合问题特别像 Leetcode78-子集 给你一个整数数组 nums ,数组中的元素 互不相同 .返回该数组所有可能的子集(幂集) 解集 不能 包含重复的子集.你可以按 任 ...
- leetcode 78,236,300
---恢复内容开始--- 2018.3.16目前已刷27题,打卡记录有意思的题目. leetcode78 subsets 思路1:DFS遍历子集,每遇到一个数就把该数加上原来的子集变成新的子集. cl ...
- [Leetcode 90]求含有重复数的子集 Subset II
[题目] Given a collection of integers that might contain duplicates, nums, return all possible subsets ...
随机推荐
- virsh命令和虚拟机克隆
virsh 命令 virsh list //列出正在运行虚拟机 virsh list --all //列出所有虚拟机 virsh console sunhao-1 //进入名字为sunh ...
- java面向对象编程(六)--四大特征之继承
本文将介绍继承.方法重载和方法覆盖.其中方法重载和方法覆盖是在讲多态时必须要清楚的一个知识点. 一.继承 1.继承的概念 继承可以解决代码复用,让我们的编程更加靠近人类思维.当多个类存在相同的属性(变 ...
- Cordova编译报AAPT错误的解决方法
因为项目中同时使用cordova-hot-code-push-plugin和phonegap-plugin-barcodescanner,编译时报错:AAPT: error: resource and ...
- apk签名的流程
最后总结一下apk签名的整个流程: 一.对Apk中的每个文件做一次算法(数据SHA1摘要+Base64编码),保存到MANIFEST.MF文件中 二.对MANIFEST.MF整个文件做一次算法(数据S ...
- 19/03/17Python笔记
一.判断元素是否为数字 ".isdigit() #判断123是不是数字,是的话输出True,不是输出False 二.标志位 需要死循环时,不一定用 while True 还可以用 while ...
- GP card规范学习笔记
9. APDU命令参考 9.1 总的编码规则 A.生命周期状态的编码 可执行的装载文件 b8 b7 b6 b5 b4 b3 b2 b1 含义 16进制命令 0 0 0 0 0 0 0 1 LO ...
- Python开发 基礎知識 2.變量 ( *arg, **kwargs )
變量 *args 和 **kwargs ( *和**為本體,名稱為通俗的名稱約定 ) *args 用於函式定義. 可將不定數量的參數傳遞給一個函數,傳入函式的引數,會先以Tuple物件收集,再設定給參 ...
- PythonStudy——数据类型转化 Data type conversion
类型转换 1.数字类型:int() | bool() | float() 2.str与int:int('10') | int('-10') | int('0') | float('-.5') | fl ...
- PythonStudy——python中如何使输出不换行
1.在python 3.x版本中,使用print(,end="") 可使输出不换行, 例如:
- 函数和对象 及 prototype和__proto__
对象有 __proto__ 函数有 prototype 对象的__proto__指向构造自己的函数的prototype 但有一例外 var Obj = {v:99}var pObj = Object ...