/** * 计算minSubString * * @return */ private Pojo[] getMinSubString() {// 转变为,求最短路径问题(可能有多个最短路径) Integer[] begin = (Integer[]) sub_stringMap.get(sub_string[0]); Integer[] end = (Integer[]) sub_stringMap .get(sub_string[sub_string.length - 1]); Pojo[][] p = new Pojo[begin.length][end.length]; int min = 0; // 得到跨度最小的value for (int i = 0; i < begin.length; i++) {// 构造2个数比较Pojo for (int k = 0; k < end.length; k++) { p[i][k] = new Pojo(i, k, begin[i].intValue(), end[k].intValue()); if (i == 0 && k == 0) min = p[i][k].getMinus(); if (p[i][k].getMinus() < min) { min = p[i][k].getMinus(); } } }
// 找到min,其余全部置null int num = 0; for (int i = 0; i < begin.length; i++) {// 构造2个数比较Pojo for (int k = 0; k < end.length; k++) { if (p[i][k].getMinus() != min) { p[i][k] = null; } else { num++; } } }
// 转置 int id = 0; Pojo_obj = new Pojo[num]; for (int i = 0; i < begin.length; i++) {// 构造2个数比较Pojo for (int k = 0; k < end.length; k++) { if (p[i][k] != null) { Pojo_obj[id] = p[i][k]; Pojo_obj[id].makeObjString();// copySubString id++; } } }