Introduction
Matrix Chain Multiplication is the foundation of Interval DP.
You are given:
arr[]where:
Matrix i = arr[i-1] × arr[i]Goal:
Find minimum multiplication cost.Example
arr = [10,20,30,40,30] Output:
30000 Key Observation
Different multiplication orders produce different costs.
Example:
(A × B) × C ≠ A × (B × C) Result matrix remains same.
Cost changes.
DP State
dp[i][j] = Minimum cost to multiply matrices from i to j Transition
Choose partition k:
dp[i][j] = min(dp[i][j], dp[i][k] + dp[k+1][j] + arr[i-1] * arr[k] * arr[j])This is the core MCM recurrence.
Dry Run
Input:
arr = [10,20,30,40,30]Best Parenthesization:
((A×B)×C)×D Answer:
30000Approach 1 : Memoization
Explanation
- Pick partition point k.
- Solve left side.
- Solve right side.
- Add multiplication cost.
- Store minimum answer.
Approach 2 : Tabulation
Explanation
State:
dp[i][j] Meaning:
Minimum multiplication cost for interval. Transition:
Try every partition k. Practice
Complexity Analysis
MemoizationTime Complexity: O(n³)
Space Complexity: O(n²)
Tabulation
Time Complexity: O(n³)
Space Complexity: O(n²)
Why This Problem is Important
- Interval DP
- Partition DP
- Advanced DP
- Foundation of Burst Balloons
- State Design
Common Beginner Mistakes
- Wrong matrix dimensions
- Incorrect partition point
- Wrong interval traversal
- Missing base cases
- Confusing matrices with dimensions
Interview Tip
Always explain:
Choose a partition point k.Then:
Solve left interval + Solve right interval + Current multiplication costThis is the entire Interval DP pattern.
Related Questions
- Burst Balloons
- Minimum Cost to Cut Stick
- Palindrome Partitioning II
- DP on Trees
Final Takeaway
Matrix Chain Multiplication is the foundation of Interval DP.
It teaches:
- Interval DP
- Partition DP
- State Design
- Cost Optimization
Mastering MCM makes advanced partition-based Dynamic Programming problems much easier to solve.