网站功能规划,怎样做seo网站推广,ps兼职做网站,山西中色十二冶金建设有限公司网站文章目录 题目描述题解思路题解代码 题目描述 题解思路
初始化一个nums中元素是否被访问的数组used、记录还需要递归的深度deep
遍历nums
如果当前元素被访问过或者当前元素等于前一个元素且前一个元素没被访问过就跳过该次遍历
否则选择当前元素#xff0c;继续递归
直到… 文章目录 题目描述题解思路题解代码 题目描述 题解思路
初始化一个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