当前位置: 首页 > news >正文

LeetCode讲解篇之47. 全排列 II

文章目录

  • 题目描述
  • 题解思路
  • 题解代码

题目描述

在这里插入图片描述

题解思路

初始化一个nums中元素是否被访问的数组used、记录还需要递归的深度deep

遍历nums

如果当前元素被访问过或者当前元素等于前一个元素且前一个元素没被访问过就跳过该次遍历

否则选择当前元素,继续递归

直到deep为0,将此次递归选择的数组加入到结果集,退出递归

直到搜索完成,返回结果集

题解代码

class Solution:def permuteUnique(self, nums: List[int]) -> List[List[int]]:nums.sort()n = len(nums)deep = nres = []tmp = []used = [False for _ in range(n)]def dfs():nonlocal deepif deep == 0:res.append([num for num in tmp])returnfor i in range(n):num = nums[i]if used[i] or (i > 0 and num == nums[i-1] and used[i-1] == False):continueused[i] = Truetmp.append(num)deep -= 1dfs()deep += 1tmp.pop()used[i] = Falsedfs()return res
http://www.lryc.cn/news/280621.html

相关文章:

  • 机器学习~从入门到精通(二)线性回归算法和多元线性回归
  • IPv6组播--PIM
  • 如何在Spring Boot中使用EhCache缓存
  • PDF 文档解除密码
  • React16源码: React中的expirationTime过期时间的计算源码实现
  • 程序设计语言的分类
  • Python轻松实现炫酷的手势检测
  • 什么是信噪比
  • 学习redis有效期和数据类型
  • 【linux】进程管理
  • k8s operator从0到1实践
  • 【动态规划】dp多状态问题
  • docker安裝gocd-server,并配置gitlab授权登录
  • 使用pygame实现简单的烟花效果
  • ubantu系统运维命令,端口相关操作
  • Java中的Stream API进阶使用
  • R语言【paleobioDB】——pbdb_collection():从PBDB获取单个采集号的基本信息
  • 阿里云服务器的tcp端口无法访问(云服务厂家问题?)
  • BikeDNA(九) 特征匹配
  • vuex是什么?怎么使用?哪种功能场景使用它?
  • 求斐波那契数列矩阵乘法的方法
  • 【IPC通信--消息队列】
  • 读写分离的手段——主从复制,解决读流量大大高于写流量的问题
  • Day02
  • 编程语言的发展未来?
  • docsify阿里云上部署
  • GPT实战系列-简单聊聊LangChain搭建本地知识库准备
  • [NAND Flash 6.4] NAND FLASH基本读操作及原理_NAND FLASH Read Operation源码实现
  • opencv多张图片实现全景拼接
  • 深入理解UML中的继承关系