《华为机试真题》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。
如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议!
本文解法非最优解(即非性能最优)。
看过上一篇文章的同学可能也发现了,递归函数是求解动态规划问题的一个很好的方法,那我们要如何写一个递归函数呢?
如果一个函数在执行过程中,直接或者间接的调用自己,我们称之为递归函数。
递归的应用场景,链表操作、二叉树操作、排列组合问题和动态规划问题等,他们有一个特点就是随着递归深度的增加,问题规模在不断减小。
比如我们在学校汇报演出的大礼堂里,你想知道你在第几排时会怎么做呢?
方案一: 走到第一排再一排一排的数到你所在的这一排。
方案二: 问前一排的同学是第几排,在他的基础上+1就是当前的排数,前一排也不清楚的话重复问他的前一排,直到问到第一排的同学。
这就是一个简单的递归函数: