递归超时如何处理

递归在递归次数多的时候空间复杂度跟时间复杂度都特别高,故需再用动态规划思路,在递归的过程中不断记录计算过的dfs(),需要的时候可以直接调用.

比如经典母牛问题:

long long fab(int month) {

    if(cow[month] == 0) { // 没有算过的月份,数组内存的是0

        cow[month] = fab(month-1) + fab(month-3);

        return cow[month];

    } else {

        return cow[month];

    }

posted @ 2022-03-06 08:44  白色飞碟  阅读(204)  评论(0)    收藏  举报