动态规划
将循环执行过程中的阶段结果保存到数组里以供后续执行使用。
func DP[T, R any](n int, list []T, f func(T) R) R {
s := make([]R, len(list))
for i, item := range list {
// exec and save result to s
s[i] = f(item)
}
return s[n]
}
解决一系列小问题,直到解决一个大问题。