Burst balloons to maximize coins. When you burst balloon i, you get nums[i-1]*nums[i]*nums[i+1] coins. After bursting, neighbors become adjacent.
Interval DP: think about which balloon to burst last in each interval. dp[l][r] = max coins from bursting all balloons in range (l,r).
💡 Pro tip: Understand this problem deeply — don't just memorize the code. Try explaining the approach out loud as if teaching a friend. If you can explain it simply, you truly understand it!
maxCoins([3, 1, 5, 8])
167