当前位置:网站首页>【回溯】全排列 leetcode46
【回溯】全排列 leetcode46
2022-06-30 21:30:00 【小风_】
给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。
示例 1:输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
示例 2:输入:nums = [0,1] 输出:[[0,1],[1,0]]
示例 3:输入:nums = [1] 输出:[[1]]
链接:https://leetcode.cn/problems/permutations
很经典的回溯算法题基础,需要考虑递归树的状态、变量和返回是什么,在此题中,递归树的变量是每一次递归时的nums,根节点是本身,每一次递归会减少一个数,叶子节点就是nums为空的时候,进行返回。
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
self.ret = []
'''NOTE 1.思考递归树(根节点和中间节点是什么) 2.思考递归树的每一个状态(for循环条件) 3.思考递归树的变量有哪些(回溯函数的形参) 4.思考递归树的叶子节点是什么(到哪结束return并保存什么) '''
def helper(nums:list,his:list):
if len(nums)==0:
self.ret.append(his)
return
for idx in range(len(nums)):
helper(nums[:idx]+nums[idx+1:],his+[nums[idx]])
helper(nums,[])
return self.ret
边栏推荐
- 興奮神經遞質——穀氨酸與大腦健康
- Zaah Sultan looks at the old driver
- How to run jenkins build, in multiple servers with ssh-key
- FreeRTOS record (IX. an example of a bare metal project transferring to FreeRTOS)
- Neurotransmetteurs excitateurs - glutamate et santé cérébrale
- Adobe-Photoshop(PS)-脚本开发-去除文件臃肿脚本
- ca i啊几次哦啊句iu家哦11111
- go搭建服务器基础
- The 16th Heilongjiang Provincial Collegiate Programming Contest
- Clickhouse native monitoring item, system table description
猜你喜欢
随机推荐
Encryption and decryption and the application of OpenSSL
MySQL batch update
时空数据挖掘:综述
一文读懂什么是MySQL索引下推(ICP)
1-11 创建线上文件服务
12345
《ClickHouse原理解析与应用实践》读书笔记(3)
Clickhouse distributed table engine
ceshi deces
Spatiotemporal data mining: an overview
1-15 nodemon
clickhouse原生監控項,系統錶描述
Four Misunderstandings of Internet Marketing
用yml文件进行conda迁移环境时的报错小结
asp. Net core JWT delivery
给苏丹国安德森苏丹的撒过 d s g
升级kube出现unknown flag: --network-plugin
Markdown notes concise tutorial
twelve thousand three hundred and forty-five
Prediction and regression of stacking integrated model




![[untitled]](/img/42/47a8c8faaed33a1d9e864cb2ef7b72.png)




