【leetcode】【剑指offer】【10-1】 斐波那契数列

易错点:递归时候超时
超时原因:相同数字多次计算
例如:
F(100) = F(99)+F(98)
F(99) = F(98) + F(97)
这个过程中F(98)就已经计算两次,因此超时
超时应对方法:
建立数组(或者哈希表),方便避免相同数字重复计算

class Solution {
public:
    int nums[101] = {};
    int fib(int n) {
        if(nums[n] == 0 && n != 0)
        {
            if(n < 2 && n > 0)
                nums[n] = n;
            else
            {
                nums[n] = (fib(n - 1) + fib(n - 2)) % 1000000007;
            } 
        }
        return nums[n];
    }
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值