21bf1a3708 - 03 - 06 - 2024
21bf1a3708 - 03 - 06 - 2024
Longest Subsequence:
for(y=0;y<=j;y++){
if(x==0 || y==0)
dp[x][y]=0;
else if(a[x-1]==b[y-1]){
dp[x][y]=dp[x-1][y-1]+1;
else{
dp[x][y]=Math.max(dp[x-1][y],dp[x][y-1]);
int x,y;
for(x=0;x<=i;x++){}
return dp[i][j];
String str1="bd";
String str2="abcd";
char a[]=str1.toCharArray();
char b[]=str2.toCharArray();
System.out.print(LCS(a,b,str1.length(),str2.length()));
Ouput:2
class LCSDP {
int i, j, max = 0;
lis[i] = 1;
lis[i] = lis[j] + 1;
max = lis[i];
return max;
}
public static void main(String[] args) {
int n = arr.length;
RECURSION OF LCS
class LCs{
static int f(int ind, int prev_ind, int[] arr, int n, int[][] dp) {
if (ind == n)
return 0;
if (dp[ind][prev_ind + 1] != -1)
System.out.println("LONGEST SUBSEQUENCE");
int n = 5;
import java.util.*;
if (n==0||n==1){
return 1;
else if(n==2){
return 2;
way[0]=1;
way[1]=1;
way[2]=2;
for(int i=3;i<=n;i++){
way[i]=way[i-1]+way[i-2]+way[i-3];
return way[n];
int n=sc.nextInt();
System.out.println("No.of ways"+ways(n));
}
OUTPUT:
No.of ways4
4.HOUSE ROBBERS
import java.util.*;
int n = nums.length;
if (n == 0) {
return 0;
} else if (n == 1) {
return nums[0];
dp[0] = nums[0];
System.out.println(rob(nums));
}
}
OUTPUT:12
import java.util.*;
if (sum == 0) {
return 1;
if (sum < 0) {
return 0;
return 0;
OUTPUT:5
import java.util.*;
return dp[sum];
OUTPUT:5
6. KMP(Knuth-Morris-Pratt) Algorithm:
import java.util.*;
int prevLPS = 0;
int i = 1;
lps[0] = 0;
if (pattern.charAt(i) == pattern.charAt(prevLPS)) {
prevLPS++;
lps[i] = prevLPS;
i++;
} else {
if (prevLPS != 0) {
} else {
lps[i] = 0;
i++;
computeLPSArray(pattern, lps);
OUTPUT:
import java.util.*;
int prevLPS = 0;
int i = 1;
lps[0] = 0;
if (pattern.charAt(i) == pattern.charAt(prevLPS)) {
prevLPS++;
lps[i] = prevLPS;
i++;
} else {
if (prevLPS != 0) {
} else {
lps[i] = 0;
i++;
int i = 0, j = 0;
if (pattern.charAt(j) == text.charAt(i)) {
i++;
j++;
if (j == pattern.length()) {
j = lps[j - 1];
if (j != 0) {
j = lps[j - 1];
} else {
i++;
}
}
computeLPSArray(pattern, lps);