【面试题10】斐波那契数列

【面试题10】斐波那契数列_第1张图片
应用:
【面试题10】斐波那契数列_第2张图片
【面试题10】斐波那契数列_第3张图片
Python解法
方法1:递归。重复计算,容易超时。

方法2:迭代,保留前面结果。

方法3:O(logN)解法。
【面试题10】斐波那契数列_第4张图片
【面试题10】斐波那契数列_第5张图片

#递归
class Solution:
    def Fibonacci(self, n):
        def helper(cur):
            if cur == 0:return 0
            if cur == 1:return 1
            return helper(cur-1) + helper(cur-2)
        return helper(n)
#迭代
class Solution:
    def Fibonacci(self, n):
        pre, cur = 0, 1
        if n == 0:return pre
        if n == 1:return cur
        while n > 1 :
            nxt = pre + cur
            pre, cur = cur, nxt
            n -= 1
        return cur

考查

  • 考查对递归、循环的理解及编码能力
  • 考查对时间复杂度的分析能力
  • 考查数学建模能力(青蛙跳台阶问题)

你可能感兴趣的:(朱滕威的面试之路)