MatrixChainRec function
(D []int, i, j int)
| 10 | |
| 11 | // MatrixChainRec function |
| 12 | func MatrixChainRec(D []int, i, j int) int { |
| 13 | // d[i-1] x d[i] : dimension of matrix i |
| 14 | if i == j { |
| 15 | return 0 |
| 16 | } |
| 17 | q := 1 << 32 |
| 18 | for k := i; k < j; k++ { |
| 19 | prod := MatrixChainRec(D, i, k) + MatrixChainRec(D, k+1, j) + D[i-1]*D[k]*D[j] |
| 20 | q = min.Int(prod, q) |
| 21 | } |
| 22 | return q |
| 23 | } |
| 24 | |
| 25 | // MatrixChainDp function |
| 26 | func MatrixChainDp(D []int) int { |