Redian新闻
>
求个查找turn point的binary search code
avatar
求个查找turn point的binary search code# JobHunting - 待字闺中
t*n
1
[555555555555555555555555125555]
能找上面这个array turn point 的BS算法. 先谢谢了.
avatar
c*2
2
BS是指logn么? 貌似不可能吧
avatar
l*n
3
返回数组记录turning point值和位置。
static int[] turning(int[] arr) {
return turning(arr, 0, arr.length);
}
static int[] turning(int[] arr, int i, int j) {
if (j == i)
return new int[] { Integer.MAX_VALUE, -1 };
if (j - i == 1 || arr[j - 1] > arr[i])
return new int[] { arr[i], i };
int m = (i + j) / 2;
if (arr[m] < arr[i]) {
return turning(arr, i + 1, m + 1);
} else if (arr[m] > arr[i]) {
return turning(arr, m + 1, j);
} else {
int[] l = turning(arr, i, m);
int[] r = turning(arr, m + 1, j);
return l[0] <= r[0] ? l : r;
}
}
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。