习惯了用C++刷算法题?不妨来试试Python吧!
使用C++写了快十年的算法题,无奈手残打字不快,终于决定从零开始使用Python刷力扣。Python语法简洁功能强大,早就跃跃欲试,无奈每次临场都走回了熟悉的C++老路。这次从零开始,重点是丢掉繁琐的细节,注重算法本身,轻轻松松刷完题,告别繁琐的C++细节。
使用Python第一步:学习强大的Python语法糖,让刷题更容易!
functools.lru_cache
LRU Cache是动态规划的绝配,在C++中我们需要定义数组,然后再另写函数进行状态转移。在Python中只要在函数上加上@lru_cache(maxsize=None),记忆化就能轻松实现了。一个简单的例子。
@lru_cache(maxsize=None)
def fib(n):
if n < 2:
return n
return fib(n-1) + fib(n-2)