1. 用DFS生成组合
在前一篇中提到了DFS的应用,其中之一就是生成组合。所谓组合,是指在n个数中取k个。如果要遍历各种取法,比较困难,可以用DFS加以模拟:对第depth个数,要么被取,要么被弃。于是,在递归程序时,有两层递归;一层递归取,另一层递归弃,生成C(n, k)的代码如下:
在前一篇中提到了DFS的应用,其中之一就是生成组合。所谓组合,是指在n个数中取k个。如果要遍历各种取法,比较困难,可以用DFS加以模拟:对第depth个数,要么被取,要么被弃。于是,在递归程序时,有两层递归;一层递归取,另一层递归弃,生成C(n, k)的代码如下: