dp[i][j]=max{dp[i-1][j],dp[i][j-1]},array1[i-1]!=array2[j-1]
=dp[i-1][j-1]+1,array1[i-1]==array2[j-1]
=0,i=0orj=0
public static void main(String[] args) {
String str1="abcde";
String str2="abgde";
System.out.println(find(str1,str2));
}
public static int find(String str1,String str2){
if(str1==null||str1.length()<1||str2==null||str2.length()<1){
return -1;
}
int[][] dp=new int[str1.length()+1][str2.length()+1];
for(int i=0;i<=str1.length();i++){
for(int j=0;j<=str2.length();j++){
if(i==0||j==0){
dp[i][j]=0;
}else if(str1.charAt(i-1)==str2.charAt(j-1)){
dp[i][j]=dp[i-1][j-1]+1;
}else if(str1.charAt(i-1)!=str2.charAt(j-1)){
dp[i][j]=Math.max(dp[i-1][j],dp[i][j-1]);
}
}
}
return dp[str1.length()][str2.length()];
}