文件名称:recursive-dynamic-programming
文件大小:7KB
文件格式:ZIP
更新时间:2024-04-01 11:31:23
Ruby
递归与动态编程 在本作业中,您将在两个练习中练习编写递归和动态编程。 对于第二个练习,还有一个可选的更难的后续措施。 学习目标 在本练习中,您将 练习编写递归方法 使用动态编程技术进行练习 确定递归方法的时间和空间复杂度 改进的斐波那契 前面您已经看到了如何使用数组存储斐波那契数,从而使时间复杂度从O(2 n )降低到O(n)。 现在,我们将进一步进行设置,因为要找到给定的斐波那契数,您只需要找到前两个数即可。 提醒: Fib(0)= 0 Fib(1)= 1 对于所有n> = 2的Fib(n)= Fib(n-2)+ Fib(n-1) 限制: 您不能使用循环,而应使用递归。 由于调用堆栈,您的解决方案应为O(n)空间复杂度。 超数位 我们使用以下规则定义整数的超数字: 给定一个整数,我们需要找到该整数的上位数。 如果数字只有数字,则其超级数字就是该数字。 否则,超级数字x等于
【文件预览】:
recursive-dynamic-programming-master
----.gitignore(1KB)
----Dockerfile(503B)
----test.sh(18B)
----LICENSE(1KB)
----README.md(2KB)
----lib()
--------fibonacci.rb(281B)
--------super_digit.rb(178B)
----Gemfile(162B)
----Rakefile(158B)
----test()
--------super_digit_test.rb(1KB)
--------fibonacci_test.rb(1KB)
--------test_helper.rb(243B)