LeetCode 0078. Subsets子集【Python】

LeetCode 0078. Subsets子集【Medium】【Python】【回溯】

Problem

LeetCode

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

Note: The solution set must not contain duplicate subsets.

Example:

1Input: nums = [1,2,3] 2Output: 3[ 4 [3], 5 [1], 6 [2], 7 [1,2,3], 8 [1,3], 9 [2,3], 10 [1,2], 11 [] 12]

问题

力扣

给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。

**说明: **解集不能包含重复的子集。

示例:

1输入: nums = [1,2,3] 2输出: 3[ 4 [3], 5 [1], 6 [2], 7 [1,2,3], 8 [1,3], 9 [2,3], 10 [1,2], 11 [] 12]

思路

回溯

也是稍微改造一下 labuladong 的回溯模板就行。
Python3 代码
1from typing import List 2 3class Solution: 4 def subsets(self, nums: List[int]) -> List[List[int]]: 5 res = [] 6 n = len(nums) 7 8 def backtrack(nums, start, path): 9 # 加入 path 10 res.append(path) 11 # i 从 start 开始递增 12 for i in range(start, n): 13 # 回溯及更新 path 14 # path.append([nums[i]]) 15 backtrack(nums, i + 1, path + [nums[i]]) 16 # path.pop() 17 18 backtrack(nums, 0, []) 19 return res

有一点疑惑,回溯更新 path 那里使用如下代码就运行不出正确结果,暂时还没找到原因:

1for i in range(start, n): 2 # 回溯及更新 path 3 path.append(nums[i]) 4 backtrack(nums, i + 1, path) 5 path.pop()

GitHub 链接

Python

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )