【LeetCode】46.全排列
LeetCode 排列 46
2023-09-14 09:13:24 时间
0. 总结
- 10min题
1. 题目
2. 分析
经典题了。思路就是递归。对于每个数,当前都有选不选两种,但是无论如何,最后都需要把所有数都给选了。
3. 代码
import copy
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
vis = [0] * len(nums)
res = []
self.dfs(nums,vis,res,n=len(nums),tmp=[])
return res
# nums 表示数组
# vis 表示是否访问过
# res 表示存储最后的结果
# n 表示数组的个数
def dfs(self,nums,vis,res,n,tmp):
if len(tmp) == n:
print(tmp)
res.append(copy.deepcopy(tmp))
return
# 依次访问nums中的第i个数
for i in range(n):
if vis[i] == 0:
vis[i] = 1
tmp.append(nums[i])
self.dfs(nums,vis,res,n,tmp)
vis[i] = 0
tmp.pop()
相关文章
- 几道入门的回溯题 | LeetCode
- LeetCode笔记:Biweekly Contest 84
- LeetCode–046–全排列(java)
- leetcode-103二叉树的锯齿形层序遍历「建议收藏」
- LeetCode 刷题笔记——day 3
- LeetCode 刷题笔记——并查集
- 【数据结构与算法】:交换排序之快速排序(手绘图解+LeetCode原题)
- LeetCode笔记:Weekly Contest 318
- JavaScript刷LeetCode-字符串类解题技巧_2023-02-27
- Leetcode每日一题
- JavaScript刷LeetCode拿offer-分治_2023-03-01
- map小试牛刀,LeetCode界的abandon有多难?
- golang刷leetcode:redis布隆过滤器
- 用javascript分类刷leetcode--双指针(图文视频讲解)
- LeetCode-76-最小覆盖字串
- 每日一道leetcode:6. N 字形变换
- leetcode(4) Median of Two Sorted Arrays详解编程语言