栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

查找提供的序列的第N个术语

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

查找提供的序列的第N个术语

比递归更好的方法是记忆。您只需要知道f(n)的最后三个值即可。伪代码的解决方案如下所示:

if n == 0:    return pelse if n == 1:    return qelse if n == 2:    return relse:        f_n-3 = p    f_n-2 = q    f_n-1 = r    for i from 3 to n:        f_new = a * f_n-1 + b * f_n-2 + c * f_n-3 + g(n)        fn-1 = fn-2        fn-2 = fn-3        fn-3 = f_newreturn f_new

这样,您无需递归调用该方法并将所有计算出的值保留在堆栈中,而只需在内存中保留4个变量即可。

这应该计算得更快,并使用更少的内存。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/449361.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号