动态规划

动态规划

将循环执行过程中的阶段结果保存到数组里以供后续执行使用。

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]
}

解决一系列小问题,直到解决一个大问题。