斐波那契数列在线编程无法通过,本机运行正确,求解惑

针对斐波那契数列进行在线编程无法通过,但在本机上暂时没有发现问题,求解答
详细代码如下:
class Solution {
public:
int Fibonacci(int n) {
static vector<int> a(n+1,-1);
a[0] = 0;
a[1] = 1;
if(a[n] != -1)
return a[n];
a[n] = Fibonacci(n-1)+Fibonacci(n-2);
return a[n];
}
};
测试程序发现输入为2时,输出应为1,但我的输出为0.
但是本机经多种编译器测试,输出均为1,并且输入从1到30均正确。
碰到这个问题,本菜鸡百思不得其解,昨晚睡觉还失眠了,哈哈,所以希望大神答疑解惑
#笔试题目#
全部评论
可能是跑了多个用例, 这个static变量被上一个用例污染了?
点赞 回复
分享
发布于 2019-05-27 12:15
可能是牛客网这个对static的处理有点问题……?你换个不用static关键字的写法就可以过了,一样的代码
点赞 回复
分享
发布于 2019-05-27 12:12
联想
校招火热招聘中
官网直投
猜测线程同步 局部变量多次初始化 造成的
点赞 回复
分享
发布于 2019-05-27 12:38
估计是static的锅啊。 按理说fib不是写个循环空间最省,速度最快么为什么要这么写。。
点赞 回复
分享
发布于 2019-05-27 13:02

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务