【力扣TOP100】全排列

题目要求:

思路:

可使用递归的方式。permute(nums)=对permute(nums[0:len(nums)-1])的每一个元素,尝试添加元素nums[len(nums)-1]

代码:

python 复制代码
class Solution:
    def permute(self, nums: List[int]) -> List[List[int]]:
        l=len(nums)
        if l==1:
            return [nums]
        t=self.permute(nums[0:l-1])
        ans=[]
        for v in t:
            for j in range(l-1):
                tt=v[0:j]+[nums[l-1]]+v[j:l-1]
                ans.append(tt)
            ans.append(v+[nums[l-1]])
        return ans
相关推荐
没头脑的男大13 分钟前
关于删除列表的那些事儿
算法
guhy fighting22 分钟前
pycharm 切换版本和窗口cmd看到的版本不一致问题解决
ide·python·pycharm
Book思议-23 分钟前
【数据结构实战】线性表的应用
c语言·数据结构·算法·链表
qq_4614893325 分钟前
C++与Qt图形开发
开发语言·c++·算法
今儿敲了吗32 分钟前
python基础学习笔记第六章——函数进阶
笔记·python·学习
Yzzz-F42 分钟前
Problem - 2194E - Codeforces
算法
像污秽一样42 分钟前
算法设计与分析-习题12.2
算法·迭代改进·分支界限
x_xbx1 小时前
LeetCode:83. 删除排序链表中的重复元素
算法·leetcode·链表
码码哈哈0.01 小时前
LangChain 快速入门(从0到可用)
开发语言·python·langchain
_小草鱼_1 小时前
【搜索与图论】DFS算法(深度优先搜索)
算法·深度优先·图论·回溯·递归