首页 > 编程语言 >全排列--Python实现

全排列--Python实现

时间:2023-04-15 23:32:39浏览次数:42  
标签:排列 nums -- res self backtrack len Python track

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。

def permute(nums):
        track,self.res=[],[]
        self.backtrack(nums,track)
        return self.res
    # 路径:记录在 track 中
    #选择列表:nums 中不存在于 track 的那些元素
    #结束条件:nums 中的元素全都在 track 中出现
    def backtrack(self,nums,track):
        if len(track)==len(nums):
            self.res.append(track[:])
            return
        for i in range(len(nums)):
            if nums[i] in track:continue
            track.append(nums[i])
            self.backtrack(nums,track)
            track.pop()

标签:排列,nums,--,res,self,backtrack,len,Python,track
From: https://blog.51cto.com/u_15944471/6192515

相关文章

  • 面试官的灵魂一击: MySQL 事务日志是什么?
    SQL(StructuredQueryLanguage)和NoSQL(NotOnlySQL)是两种不同类型的数据库系统。SQL数据库系统采用了关系模型来存储数据,通过使用SQL语言进行数据管理和查询。SQL数据库系统适用于大规模、复杂的数据和事务处理,并且具有数据一致性和完整性的特点。常见的SQL数据库系统包括MySQL、Or......
  • 关键字:super
    关键字:super在Java类中使用super来调用父类中的指定操作:super可用于访问父类中定义的属性super可用于调用父类中定义的成员方法super可用于在子类构造器中调用父类的构造器注意:尤其当子父类出现同名成员时,可以用super表明调用的是父类中的成员super的追溯不仅限于直......
  • ChatGPT教我刷OJ【一】
    promote你现在是一名C语言指导老师,我会给你一些C语言题目,你需要教我写出一个C语言程序,教的过程需要你给我C语言程序以及解析,下面“”中为题目要求题目“1059:奇特的减法时间限制:1Sec内存限制:128MB提交:2421解决:1034[提交][状态][讨论版][命题人:外部导入]题目......
  • Java中的继承
    先看一段代码:classA{publicintx;}classB{publicvoidpri(){System.out.println(x);}}请问这时候调用x,可以得到值么?答案是否定的,因为x在A这个类当中,而这个A类和B类毫不相干,B类中没有x这个变量,所有代码会出现编译错误,但是通过继承,就可以访问的到A类里的x。......
  • java: 程序包org.springframework.web.bind.annotation不存在(已解决)
    今天在创建了一个新的SpringBoot模块后,和往常一样将文件从别的模块中复制过来,然后运行鑫模块就报错了:java:程序包org.springframework.web.bind.annotation不存在,第一反应是将文件所在的包Rebuild一下,但是这次并没有起到作用。然后就想着清除一下缓存,进行步骤:File-->Invalidat......
  • inner join查询出现两个相同的列
    使用GROUPBY语句可以使用GROUPBY语句将结果集按照指定的列进行分组,并对每个分组进行聚合操作。在使用GROUPBY语句时,需要将SELECT语句中选择的列和聚合函数中的列全部包含在GROUPBY子句中。SELECTlog_id,log_user_name,user_role,log_dateFROM`back_use......
  • xss反射型和存储型
    1、反射型1.1发生场景目标网站某处,用户可以get或post基于url的直接参数或路径参数提交数据,或者get或post基于表单form提交数据。(具体取决于服务端接收的编程方法)服务端接收到数据后,未经过充分检测,将其写入到响应的html页面中。如果该数据是攻击者构造的payload,可以包含某些......
  • Rust中的derive属性详解
    1.Rust中的derive是什么?在Rust语言中,derive是一个属性,它可以让编译器为一些特性提供基本的实现。这些特性仍然可以手动实现,以获得更复杂的行为。2.derive的出现解决了什么问题?derive属性的出现解决了手动实现一些特性时需要编写大量重复代码的问题。它可以让编译器自动生成......
  • 简易的延迟任务
    【c#】分享一个简易的基于时间轮调度的延迟任务实现     在很多.net开发体系中开发者在面对调度作业需求的时候一般会选择三方开源成熟的作业调度框架来满足业务需求,比如Hangfire、Quartz.NET这样的框架。但是有些时候可能我们只是需要一个简易的延迟任务,这个时候引......
  • vs 2017编译bootst库
    1.下载boost源码,这里下载boost_1_69_0:boost_1_69_0.7z.2.解压后,已管理员身份打开VS2017的x86_x64兼容工具.例如我的路径是F:F://切换到F盘cdwork\C++\boost_1_69_0执行bootstrap.bat生成b2.exe执行b2.exe--toolset=msvc-14.1install--prefix="D:\Project\Boos......