基本的排列组合问题,就是高中数学的内容,怎么用编程语言输出所有排列呢?我们手写的过程,它应该是一个递归的过程,而不适合用for/wihle循环。如果数据结构学的扎实,可以发现这是一个树结构,遍历所有的叶子节点就能够得到全排列。说到递归,应该向大家隆重介绍一下数学归纳法的思想,应为都有一个问题规模n。然后树可以演变成图,然后就对深度优先遍历,还是广度优先遍历算法的各个形式要很熟悉。
有一个金典的问题是找零钱问题统计。
其实这种类似问题,往深了挖,节本就是图的问题,改天上图片,并说明一些问题.
参考资料:《计算机程序的构造和解释》