My issue
used memorization recursive approch
My code
#include <bits/stdc++.h>
using namespace std;
int recursion(int i,int j,vector<vector<int>> triangle,vector<vector<int>> dp){
if(i==triangle.size()-1) return triangle[i][j];
if(dp[i][j]!=-1) return dp[i][j];
int d= triangle[i][j]+recursion(i+1,j,triangle,dp);
int rd= triangle[i][j]+recursion(i+1,j+1,triangle,dp);
return dp[i][j]=max(d,rd);
}
int dynamic(int n,vector<vector<int>> &triangle){
vector<vector<int>> dp(n,vector<int>(n,-1));
return recursion(0,0,triangle,dp);
}
int main() {
// your code goes here
int t,n;
cin>>t;
while(t--){
cin>>n;
vector<vector<int>> tri;
for(int i=0;i<n;i++){
for(int j=i;j<=i;j++){
cin>>tri[i][j];
}
}
cout<<dynamic(n,tri);
}
}
Learning course: Dynamic programming
Problem Link: Sums in a Triangle Practice Problem in Dynamic programming - CodeChef