https://blog.csdn.net/hrn1216/article/details/51534607 private static int getSimilarity(int[] a, int[] b) { int[][] c = new int[a.length][b.length]; boolean tmp = false; for (int i=0; i<a.length; i++) { if (a[i] == b[0]) { tmp = true; } if (tmp) { c[i][0] = 1; }else { c[i][0] = 0; } } tmp = false; for (int j=1; j<b.length; j++) { if (b[j] == a[0]) { tmp = true; } if (tmp) { c[0][j] = 1; }else { c[0][j] = 0; } } for (int j=1; j<b.length; j++) { for (int i=1; i<a.length; i++) { if (b[j] == a[i]) { c[i][j] = c[i-1][j-1] + 1; }else { c[i][j] = Math.max(c[i-1][j], c[i][j-1]); } } } return c[a.length-1][b.length-1]; }
求最长公共子序列长度
最新推荐文章于 2022-04-04 19:45:21 发布