如果要在List中找到该元素,并且希望该函数返回“ YES”,我希望我的函数返回“ YES” ”(如果找不到)。
我写了下面的代码(二进制搜索),但是一些测试用例失败了。
但是,我为Linear Search编写了代码,并通过了所有测试用例。
我已经写了这个程序
static String findNumber(List<Integer> arr, int k) {
int l=0;
int r= arr.size()-1;
int flag=0;
while(l<=r){
int m = l + (r - l) / 2;
if(arr.get(m)==k){
return "YES";
//flag=1;
}
else if(arr.get(m)<k){
l=m+1;
}
else
r = m-1;
}
// if(flag==1){
// return "YES";
// }
return "NO";
}
但是相同的代码可用于数组,并且所有测试用例都可以通过。
答案 0 :(得分:0)
您的二进制搜索功能正确。也许是其他原因导致了错误。确保您的列表已排序,并且输入中的所有数字都适合int(不需要long)。