DynamicProgramming 是很重要演算法技巧。在 Python 我們有很高明的 decorator 可以應用。
1 def dynamic(func):
2 cache = {}
3 def wrapper(*args, **kws):
4 try:
5 return cache[(args, kws)]
6 except KeyError:
7 cache[args] = func(*args, **kws)
8 pass
9 return cache[(args, kws)]
10 return wrapper
