Excaliburer`s Zone

It was challenging, but not risky.

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

  在使用递归函数时,如果函数的形参带来的信息比较明确的的话,例如形参为int *a,int start,int end三个参数的话,分别表示数组a和a的起始小标、终止下标;这样递归的时候用起来会比较方便。例如:

int fun(int a*,int start,int end)
{
    ....
}

但在有的时候,题目给定的函数的参数可能信息不是很明确,例如只给你一个数组或者一个vector的形式:

int fun(int a*)
{
    ....
}

这样的话,递归过程中就比上述情况麻烦了。此时可以增加一个函数,该函数的形参为int a*,int start,int end。这样再去递归的时候,直接递归这个新定义的函数会更方便。例如:

int fun(int a*)
{
    ....
    funCore(a,start,end);
}
int funCore(int a*,int start,int end)
{
    ....
}

这一点需要注意,《剑指offer》面试题33就可以采用类似的思想。

 

posted on 2018-03-24 21:06  Excaliburer  阅读(492)  评论(0编辑  收藏  举报