原本我想的是分别找出s1到s2的距离,和s2到s1的距离,后面提交就是错的,想了想,也对,如果中间有两个相同的s1或者s2,就错了;
所以改了一下:
1.定义i,j,分别存储s1,s2的下标,然后没次循环相减求绝对值,利用贪心思想,每次取最小的,
输出就好了
class Solution {
public int findClosest(String[] arr, String s1, String s2) {
int i = -1;
int j = -1;
int min = 100001;
for (int k = 0; k < arr.length; k++) {
String t = arr[k];
if (t.equals(s1)) {
i = k;
} else if (s2.equals(t)) {
j = k;
}
if (i >= 0 && j >= 0) {
min = Math.min(min, Math.abs(i - j));//贪心
}
}
return min;
}
}