package com.Proxy;
/**
* @author Ruth
* created on 7/29/2018
* There is an array which is sorted and contains "", check the specified elements in this array, return the index;
*/
public class TestArray {
public static void main(String[] args) {
String[] arr = {"A", "B", "", "", "", "C"};
int index = getIndexOfChar(arr, "C");
System.out.println(index);
}
public static int getIndexOfChar(String[] arr, String str) {
if (arr == null || arr.length == 0 || str == null) {
return -1;
}
int left = 0;
int right = arr.length - 1;
int res = -1;
int mid = 0;
int i = 0;
while (left <= right) {
mid = (left + right) / 2;
if (arr[mid] != null && str.equals(arr[mid])) {
res = mid;
right = mid - 1;
} else if (arr[mid] != null) {
if (arr[mid].compareTo(str) > 0) {
right = mid - 1;
} else {
left = mid + 1;
}
} else {
i = mid;
while (arr[i] == null && --i >= left) ;
if (i < left || arr[i].compareTo(str) < 0) {
left = mid + 1;
} else {
res = arr[i].equals(str) ? i : res;
right = i - 1;
}
}
}
return res;
}
}
查找数组指定元素,数组中包含“”
最新推荐文章于 2024-06-12 00:08:35 发布
本文介绍了一种在包含空字符串的已排序数组中查找指定元素的方法,并提供了一个Java实现示例,该方法能够返回目标元素的索引。
4176

被折叠的 条评论
为什么被折叠?



