Java 比较两个字符串的相似度算法

_Ricky_ 2018-08-28 11:28:10
文章地址:https://blog.csdn.net/JavaReact/article/details/82144732
有大佬能给我解释一下 46行代码嘛,没看懂
(直接在文章下评论就可以了)
...全文
1444 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tongkaiming 2018-08-29
  • 打赏
  • 举报
回复
int d[][];
d[i][j] = min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + temp);
d[][]是个二维数组,你应该是不懂这个二维数组。
如果我这样定义取值你应该就知道了;
int [][] i= {{1,2},{3,4}};

如果还是不懂二维数组进去百度了。
至于d[i][j] = min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + temp);这一句假设i=2,j=1
那么min方法的第一个入参d[i - 1][j] + 1则等于(d[1][1])+1
拓展:
int [][] i= {{1,2},{3,4}};
(i[1][1])+1=5;
夜雨恋星辰 2018-08-29
  • 打赏
  • 举报
回复
为了让数组最后一个是两个字符串不同的总数,你可以拿两个简单的字符串断点去看看
_Ricky_ 2018-08-29
  • 打赏
  • 举报
回复
引用 1 楼 tongkaiming 的回复:
int d[][];
d[i][j] = min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + temp);
d[][]是个二维数组,你应该是不懂这个二维数组。
如果我这样定义取值你应该就知道了;
int [][] i= {{1,2},{3,4}};

如果还是不懂二维数组进去百度了。
至于d[i][j] = min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + temp);这一句假设i=2,j=1
那么min方法的第一个入参d[i - 1][j] + 1则等于(d[1][1])+1
拓展:
int [][] i= {{1,2},{3,4}};
(i[1][1])+1=5;

最后这个d[i][j] = min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + temp); 赋值没懂,为什么要这样取值

50,639

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧