dtcms 源码 VR全景图片 顺序查找 leetcodeLCP idea 常用快捷键 php dll lua safari 后台管理界面 electron教程 centos查看php版本 mysql数据库名称 android逆向工程师 linux查看防火墙 math保留两位小数 mysql删除存储过程 python中的index python打开文件 python异常 python的文件操作 java日期 java8特性 java开发接口 java时间类 java怎么安装 java接口规范 一键刷入recovery 千元以下最好的手机 mounted 七宗罪游戏下载 视频md5修改器 灰色按钮激活精灵 完美漂移辅助 layout下载 jsp源码 网页之家 骰子牛牛 js组合 手机上怎么剪辑音乐
当前位置: 首页 > 学习教程  > python

【Leetcode】46. 全排列(Permutations)

2021/2/7 10:54:38 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

No46. 全排列 题目 给定一个 没有重复 数字的序列,返回其所有可能的全排列。 示例 输入: [1,2,3]输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 解题代码(Python3) class Solution:def permute(self, nums: List[int]) -> List[List[in…

No46. 全排列

题目

给定一个 没有重复 数字的序列,返回其所有可能的全排列。

示例

  • 输入: [1,2,3]
  • 输出:
    [
    [1,2,3],
    [1,3,2],
    [2,1,3],
    [2,3,1],
    [3,1,2],
    [3,2,1]
    ]

解题代码(Python3)

class Solution:
    def permute(self, nums: List[int]) -> List[List[int]]:
        ori = [x for x in nums]
        res = [[x] for x in nums]
        for i in range(len(nums) - 1):
            res = [x + [y] for x in res for y in ori if y not in x]
        return res

思路:

外层循环次数是数字序列的长度 - 1,建立ori和res两个辅助List进行循环赋值。

复杂度分析:

  • 时间复杂度 O(n^3) 2层的列表推导生成式+1层外循环
  • 空间复杂度 O(n) 3个n长度的List

运行结果:

在这里插入图片描述


本文链接: http://www.dtmao.cc/news_show_2000239.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?