gpt4 book ai didi

java - 在排序数组 X 中搜索第一个索引 i 使得 X[i] >= a

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:39:33 24 4
gpt4 key购买 nike

我正在努力调整 codaddict proposed here 找到的代码解决这个问题的简单变体。有人有想法吗?

最佳答案

你采用他的算法,并返回 high 而不是 -1。如果 X[high] 小于您的目标,则取下一个项目。如果 high 等于您的数组大小,则没有这样的索引。

Michael Anderson 关于您指出的算法的编写方式是正确的,但它很容易适应。

int find_hi (const std::vector<int> &X, int t) {
int low = 0;
int high = X.size() - 1;
while(low <= high) {
int mid = (low + high) / 2;
if(X[mid] == t) return mid;
else if(X[mid] < t)
low = mid + 1;
else
high = mid - 1;
}
if (high < sz && X[high] < t) ++high;
return high;
}

但是,这等同于 C++ 中的以下内容:

int find_hi (const std::vector<int> &X, int t) {
return std::lower_bound(X.begin(), X.end(), t) - X.begin();
}

关于java - 在排序数组 X 中搜索第一个索引 i 使得 X[i] >= a,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11340527/

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