一、什么是递归?
三、如何使用递归?
int countSteps(int n){ if(n == 1) { return 1; } if(n == 2) { return 2; } return f(n-1) + f(n-2);}
四、使用递归需要注意什么?4.1 堆栈溢出
4.2 重复计算
int countSteps(int n){ if(n == 1) { return 1; } if(n == 2) { return 2; } // 先从散列表中检查是否已经对f(n)求解过了 if(resultMap.get(n) != null){ return resultMap.get(n); } int result = f(n-1) + f(n-2); // 将当前问题f(n)结果保存到散列表 resultMap.put(n,result); return result;}4.3 时空复杂度
4.4 递归环
以上就是朝夕生活(www.30zx.com)关于“一文精通递归算法”的详细内容,希望对大家有所帮助!