Aditya Verma approach - recursion memoization - JAVA -
\nclass Solution {\n    int[][] t = new int[51][51];\n    public int minScoreTriangulation(int[] values) \n    {\n        for(int i=0;i<51;i++)\n        {\n    
\nclass Solution {\n    int[][] t = new int[51][51];\n    public int minScoreTriangulation(int[] values) \n    {\n        for(int i=0;i<51;i++)\n        {\n            for(int j=0;j<51;j++)\n            {\n                t[i][j] = -1;\n            }\n        }\n        \n        return solve(values,0,values.length - 1);\n    }\n    \n    int solve(int[] values, int i, int j)\n    {\n        if(i >= j)\n        {\n            return 0;\n        }\n        \n        if(i+1 == j)\n        {\n            return 0;\n        }\n        \n        if(t[i][j] != -1)\n        {\n            return t[i][j];\n        }\n        \n        int min = Integer.MAX_VALUE;\n        for(int k=i+1;k<j;k++)\n        {\n            int temp_ans = solve(values,i,k) + solve(values,k,j) + (values[i] * values[k] * values[j]);\n            \n            min = Math.min(min,temp_ans);\n        }\n        \n        t[i][j] = min;\n        return min;\n    }\n}
[]