2020-07-28

需要掌握的地方

  1. 切片相关(倒序输出链表)
  • list[i:j] 包含 list[seq],其中 i <= seq < j
  • Python 中 list[::-1]list.reverse() 的区别
  1. list 相关方法实现(两个栈实现队列)
    sorted、sort 等排序使用了 Timesort 排序方法
    pop 如何实现的

  2. 根据二叉树中序和前序遍历结果复原二叉树

  3. functools.lru_cache(斐波那契)

  4. 斐波那契数(青蛙跳台阶)

  • 列递归法时间复杂度为 O(2^n), fib(5)调用过程如下:


    fib(5) 递归过程

    递归法 Python 伪代码如下:

if n < 2:
  return n
return fbi[n - 1] + fbi[n -2]
  • 非递归法时间复杂度 O(n), 空间复杂度 O(1)。
    非递归法 Python 伪代码如下:
fib_pre = 1
fib_ppre = 0

if n < 2:
  return n

for i in range(2, n + 1):
  temp = fbi_pre
  fbi_pre = fbi_ppre + fbi_pre
  fbi_ppre = temp
return fbi_pre
  • 尾递归法
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。