46全排列
时间:2019-11-27
本文章向大家介绍46全排列,主要包括46全排列使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题目: 给定一个没有重复数字的序列,返回其所有可能的全排列。
示例: 输入: [1,2,3]输出:[[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]
来源: https://leetcode-cn.com/problems/permutations/
法一: 自己的代码
思路: 很基本的回溯算法,没有剪枝条件,r中每次传递的都是去掉已经用过的数,
class Solution: def permute(self, nums): resluts = [] l = len(nums) # 注意这里的nums如果不初始化的话,要放在a的前边,否则报错. def backtrack(a=[], nums=nums): # 深度优先遍历,即回溯终止的条件 if len(a) == l: resluts.append(a) for j,i in enumerate(nums): # 每次回溯前,都将该数删除,为了下次回溯for循环的时候不再用 # 这里没有用状态重置是因为 回溯时用了r来赋值给nums,每次回溯结束后仍然是原来的状态 r = nums.copy() del r[j] # 这里的i必须加[] backtrack( a+[i], r) # 也可以不用引入r直接生成list传递,耗时稍微短点 # backtrack( a+[i], [k for k in nums if k != i]) backtrack() return resluts if __name__ == "__main__": duixiang = Solution() a = duixiang.permute([1,2,3]) print(a)
法二:
原文地址:https://www.cnblogs.com/xxswkl/p/11941786.html
- 【Java概念学习】--数组的初始化
- linux下重命名文件或文件夹使用mv既可实现。
- 第三课:把tensorflow,模型和测试数据导入Android工程
- D-Link 路由器信息泄露和远程命令执行漏洞分析及全球数据分析报告
- Wordpress安全架构分析
- CVE-2017-5123 漏洞利用全攻略
- 简单分析shared pool(三) (r5笔记第94天)
- OpenCV在车道线查找中的使用
- ESP32 DevKitC 编译烧写 AliOS Things
- 使用R完成K近邻分类
- 使用R完成逻辑斯蒂回归分类 直接上代码,如下:
- 基于时间点的不完全恢复的例子(r6笔记第9天)
- R-正太分布,检验
- R完成--决策树分类 一个使用rpart完成决策树分类的例子如下:
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- vc dll静态函数导出
- 利用GDB调试 MSQL
- 手把手教学-MySQL主从复制架构转换MGR架构(mysq_shell版)
- 手把手教学-MySQL主从复制架构转换MGR架构(手动版)
- 云数据库VS自建数据库,到底该如何抉择?
- 组复制常规操作-事务一致性保证 | 全方位认识 MySQL 8.0 Group Replication
- 面试题-算法:二叉树的前序遍历
- 黑客帝国中的代码雨
- 模型效果评价—混淆矩阵
- 用Python中的py2neo库调用neo4j,搭建简单关联图谱
- 520表白代码合集
- neo4j的安装配置及用途
- Python安装py2neo库
- Kubernetes 1.19.0环境搭建
- 高能!美团出品2020最新 “Android 面试必备宝典”,从基础到原理,一应俱全