题目
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200323165609940.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzOTY2MTI5,size_16,color_FFFFFF,t_70)
我的代码
public class 特殊有序数组中查找 {
public static void main(String[] args) {
String[] arr = { "a", "", "ac", "", "ad", "b", "", "ba" };
int res = indexOf(arr, "abc");
System.out.println(res);
}
private static int indexOf(String[] arr, String p) {
int begin = 0;
int end = arr.length - 1;
while (begin <= end) {
int indexOfMid = begin + ((end - begin) >> 1);
while (arr[indexOfMid].equals("")) {
indexOfMid++;
if (indexOfMid > end) {
return -1;
}
}
if (arr[indexOfMid].compareTo(p) > 0) {
end = indexOfMid - 1;
} else if (arr[indexOfMid].compareTo(p) < 0) {
begin = indexOfMid + 1;
} else {
return indexOfMid;
}
}
return -1;
}
}