• 关于递归函数使用的一个技巧


      在使用递归函数时,如果函数的形参带来的信息比较明确的的话,例如形参为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就可以采用类似的思想。

  • 相关阅读:
    域运算符::
    类和结构体类型的异同
    4 链表组件(817)
    2 旋转链表(61)
    1、重排链表(力扣143)
    子字符串排序的关键代码
    C语言四舍五入
    约分
    python学习第八天
    python学习第七天
  • 原文地址:https://www.cnblogs.com/wangkundentisy/p/8641467.html
Copyright © 2020-2023  润新知