Permutation 和 Combination
概念上permutation的每一个答案的长度和字符串的长度是一样的。Combination的每一个答案是从0到字符串的长度。
Permutation对于“abc“这个字符串,画出树图,每一层选一个字符,下一层选上一层在“abc”中没有选的字符:
""
a b c
ab ac ba bc ca cb
abc acb bac bca cab cba
答案是树图的最后一层,这个不是二叉树。属于generic树。
Combination对于每一个字符是选还是不选,画出树图,而且是二叉树:
""
"" a
"" b a ab
"" c b bc a ac ab abc
答案是树图最后一层。
所以觉得统计难是正常的。所以不用递归一样可以想。用BFS即可。
而且可以看出递归的第一行是树的最后一行。递归不仅implicitly装栈,而且含去重,装栈顺序和阅读顺序也不一样。
递归唯一的好处就是可以看一看树形结构。递归方程的数量代表树的child node的数量。
平时画图可以和字的意思相互照应。把root画在下面。而不是画出来了调软件rotate树。