LeetCode 46. 全排列
时间:2020-07-11
本文章向大家介绍LeetCode 46. 全排列,主要包括LeetCode 46. 全排列使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
给定一个 没有重复 数字的序列,返回其所有可能的全排列。
示例:
输入: [1,2,3]
输出:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
if len(nums) <= 1: # 递归终止条件
return [nums]
res = []
for idx, num in enumerate(nums):
res_nums = nums[:idx] + nums[idx + 1:] # 确定剩余元素
for j in self.permute(res_nums):
res.append([num] + j)
return res
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
ans = []
cur = []
visit = set()
self.permute_solver(nums, ans, cur, visit)
return ans
def permute_solver(self,nums,ans,cur,visit):
if len(cur)==len(nums):
ans.append(cur[:])
return
for i in range(len(nums)):
if nums[i] in visit:
continue
cur.append(nums[i])
visit.add(nums[i])
self.permute_solver(nums,ans,cur,visit)
num = cur.pop()
visit.remove(num)
return
原文地址:https://www.cnblogs.com/sandy-t/p/13285404.html
- 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 数组属性和方法
- 『Python动手学』Python处理.mat文件
- Swift 打开三方地图 腾讯地图、百度地图、高德地图、Apple 地图
- 初学者应该看的JavaScript Promise 完整指南
- React Advanced Topics
- try catch引发的性能优化深度思考
- 用于自动驾驶车辆视觉定位的地图存储:ORB-SLAM2的一种拓展
- c# 动态产生控件 注册动态控件事件
- leetcode 一些算法题及答案
- 得分--UVa1585
- 如何计算一个程序的运行时间
- c语言输入回车结束输入
- C# devExpress BandedGridView属性 备忘
- 结构体的应用及所有形式
- 百炼1003
- 百炼1005