[Leetcode 46/47] Permutation I/II

preview_player
Показать описание

Рекомендации по теме
Комментарии
Автор

Very intuitive and clear! This is the only video that goes through the recursion process step-by-step. Now I have much better understanding of the nuts and bolts of recursion.

KGuan-dnvv
Автор

Performs better than O(N * N!), and a bit slower than O(N!). Space complexity : O(N!) since one has to keep N! solutions.

streambai
Автор

letter combination, type是 [str, str, str, str] 理论上说,如果不删除新添加的char 但其实函数跑完后并不是这样的。 能请前辈解答一下这个问题么? 谢谢

jasonshen
Автор

请问为什么要设定clist跟set两个数组呢?我把code里面涉及到set的都删除了,除了第12行的set改成了clist,

zy
Автор

basketwang, could u elaborate the time and space complexity for backtracking?

bartholdic
Автор

用楼主的思路拿python写了一遍,2, 2, 1, 1这个case总是过不了...

sabrinawang
Автор

有一点不懂, 比如 clist是[1, 2, 3] 了,此时满足了clist.size( ) == nums.length, res.ad( ); 然后应该要移除3了,但是set.remove( )是写在else中的, 满足了if之后怎么进入else语句呢?

leixia
Автор

为什么 Permutation II 从JAVA 改写成Python 就出错了,哪位大神能帮我看看吗?


if len(nums) <=1: return [nums]
nums.sort()
ans= []

def dfs(nums, curr):
if len(curr)== len(nums):
ans.append(curr[:])
return
preNum = nums[0]-1
for i in range(len(nums)):
if nums[i] not in curr and nums[i] !=preNum:
preNum= nums[i]
curr.append(nums[i])
dfs(nums, curr)
curr.pop()
dfs(nums, [])
return ans

deutscherkaiserwilhelmii
Автор

您好,请问条件里的false 是如何被初始化的?直接默认false进行吗? 谢谢

carlgauss
Автор

nums[0] -1 会不会越界呀?不如比较 status[i] || i > 0 && nums[i] == nums[i - 1] && !status[i - 1]

AndyWang
Автор

Could you please captions to your videos

rockysingh
Автор

您好,Permutations II有个疑问,递归函数之前 int preNum = nums[0] - 1;那么每次调用递归的时候,preNum不会每次都初始化为 nums[0] - 1再进入for循环吗?

dan
join shbcf.ru