
解题思路
排列与组合不同的是排列是每个元素顺序不同就算一个新的排列,而组合是不管里面元素的顺序是怎样的。
[1,2,3] 与 [3,2,1]是不同的排列,但是它们是一样的组合
这题我们只需要知道每次遍历剩余哪些元素还没被添加,将其添加就行,唯一的难点就是怎么判断哪些元素没有被添加,我使用的是哈希表,通过记录下标来分辨哪些元素没有被添加。
代码
Python
1234567891011121314151617181920212223class Solution: def permute(self, nums: List[int]) -> List[List[int]]: n = len(nums) if n == 0: return [[]] ans = [] s = set() tmp = [] def dfs(): # nonlocal ans, s, tmp if len(tmp) == n: ...
