You are on page 1of 2

Name -Awadhesh Kumar Maurya

Roll no-2100290100039
DSA training day 8

Program to find minimum path sum


LINK: h ps://leetcode.com/problems/minimum-path-sum/descrip on/

class Solution {
private:
long long f(int i,int j,vector<vector<int>>& grid,vector<vector<int>>& dp){
if(i==0&&j==0) return grid[0][0];
if(i<0||j<0) return INT_MAX;
if(dp[i][j]!=-1) return dp[i][j];
long long up=grid[i][j]+f(i-1,j,grid,dp);
long long left=grid[i][j]+f(i,j-1,grid,dp);
return dp[i][j]=min(up,left);
}
public:
int minPathSum(vector<vector<int>>& grid) {
int n=grid.size();
int m=grid[0].size();
vector<vector<int>> dp(n,vector<int>(m,-1));
return f(n-1,m-1,grid,dp);
}
};

Program to find longest common subsequence


LINK: h ps://leetcode.com/problems/longest-common-subsequence/descrip on/

class Solution {
public:
int longestCommonSubsequence(string text1, string text2) {
int n=text1.length();
int m=text2.length();
vector<vector<int>> dp(n+1,vector<int>(m+1,0));
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(text1[i-1]==text2[j-1]){
dp[i][j]=dp[i-1][j-1]+1;
}
else
dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
}
}
return dp[n][m];
}
};

Program to find Fibonacci sequence using bottom up approach


int bottomUpFibonacci(int N) {
if (N == 0 || N == 1)
return N;
int A = 0, B = 1;
int temp;
for (int i = 2; i <= N; ++i) {
temp = A + B;
A = B;
B = temp;
}
return B;
}

You might also like