diff --git a/Brackets in Matrix Chain Multiplication b/Brackets in Matrix Chain Multiplication new file mode 100644 index 0000000..ada709b --- /dev/null +++ b/Brackets in Matrix Chain Multiplication @@ -0,0 +1,31 @@ +class Solution{ +public: + pair dp[27][27]; + string matrixChainOrder(int p[], int n){ + return f(1,n-1,p).second; + } + + pair f(int i,int j,int p[]){ + if(i==j){ + string curr = ""; + curr += 'A' + i-1; + return {0,curr}; + } + + if(dp[i][j].second != "") return dp[i][j]; + + int val = INT_MAX; + string s = ""; + + for(int k=i;k a = f(i,k,p); + pair b = f(k+1,j,p); + int q = p[i-1]*p[j]*p[k] + a.first + b.first; + if(q