-
recursive-dynamic-programming下载
资源介绍
递归与动态编程
在本作业中,您将在两个练习中练习编写递归和动态编程。 对于第二个练习,还有一个可选的更难的后续措施。
学习目标
在本练习中,您将
练习编写递归方法
使用动态编程技术进行练习
确定递归方法的时间和空间复杂度
改进的斐波那契
前面您已经看到了如何使用数组存储斐波那契数,从而使时间复杂度从O(2 n )降低到O(n)。 现在,我们将进一步进行设置,因为要找到给定的斐波那契数,您只需要找到前两个数即可。
提醒:
Fib(0)= 0 Fib(1)= 1
对于所有n> = 2的Fib(n)= Fib(n-2)+ Fib(n-1)
限制:
您不能使用循环,而应使用递归。
由于调用堆栈,您的解决方案应为O(n)空间复杂度。
超数位
我们使用以下规则定义整数的超数字:
给定一个整数,我们需要找到该整数的上位数。
如果数字只有数字,则其超级数字就是该数字。 否则,超级数字x等于
- 上一篇: 8皇后算法的非递归算法
- 下一篇: C/C++常用算法手册.秦姣华(有详细书签).rar