感觉自己算法太菜了。woc,想找一个算法大佬,给他做舔狗。
package offer;
/**
* 动态规划求解-将字符串A变换为字符串B 所用的最少字符操作次数
*/
public class Day0418_demo01 {
public static int fun(String s1 , String s2){
int len1 = s1.length();
int len2 = s2.length();
int arr[][] = new int[len1][len2];
//边界
for(int i=0; i<len1; i++){
arr[i][0] = i;
}
for(int j=0; j<len2; j++){
arr[0][j] = j;
}
for(int i=1; i<len1; i++){
for(int j=1; j<len2; j++){
int a = s1.charAt(i) == s2.charAt(j) ? 0 : 1;
int d = arr[i-1][j]++;
int in = arr[i][j-1]++;
int sub = arr[i-1][j-1] + a;
arr[i][j] = minNum(d , in , sub);
}
}
System.out.println(arr[len1-1][len2-1]);
return 0;
}
//计算最小值
public static int minNum(int a, int b, int c) {
int min = a > b ? b : a;
return min > c ? c : min;
}
public static void main(String args[]){
fun("asdfwfew" , "jfew");
}
}
可以关注本人公众号一起探讨软件开发技术
分享一篇文章