package com.interview.dynamic; /** * http://www.geeksforgeeks.org/dynamic-programming-set-8-matrix-chain-multiplication/ */ public class MatrixMultiplicationCost { public int findCost(int arr[]){ int temp[][] = new int[arr.length][arr.length]; int q = 0; for(int l=2; l < arr.length; l++){ for(int i=0; i < arr.length - l; i++){ int j = i + l; temp[i][j] = 1000000; for(int k=i+1; k < j; k++){ q = temp[i][k] + temp[k][j] + arr[i]*arr[k]*arr[j]; if(q < temp[i][j]){ temp[i][j] = q; } } } } return temp[0][arr.length-1]; } public static void main(String args[]){ MatrixMultiplicationCost mmc = new MatrixMultiplicationCost(); int arr[] = {4,2,3,5,3}; int cost = mmc.findCost(arr); System.out.print(cost); } }