gpt4 book ai didi

Java arrays.binary 搜索多个匹配项?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:10:37 26 4
gpt4 key购买 nike

我需要使用 Arrays.binarySearch 方法查找排序数组中的所有元素。我想在 lowerbound = pos + 1 中迭代二分查找(pos 是之前的匹配),但是 binarySearch 不保证返回第一个匹配(最小匹配索引)?

我该怎么做?

最佳答案

您可以轻松地使用 binarySearch 的结果来获取所有匹配项:

long[] sortedArr = ...
int index = Arrays.binarySearch (sortedArr, value);
int first = index;
int last = index;
if (index >= 0) {
while (first > 0 && sortedArr[first-1] == value)
first--;
while (last < sortedArr.length - 1 && sortedArr[last+1] == value)
last++;
}

运行此代码后,firstlast(含)之间的索引都是包含搜索值的索引。

关于Java arrays.binary 搜索多个匹配项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29193539/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com