-1
我试图解决另一个Question需要帮助解决二进制搜索
我已经实现了解决这个问题所需的二进制搜索功能,但我不能返回正确的值,这将有助于我解决这个问题。这是我的代码。
请帮我解决这个问题。
def BinarySearch(arr,low,high,search):
while(low<=high):
middle=(low+high)/2
int_mid=int(middle)
print(int_mid)
if arr[int_mid]==search:
return int_mid
elif arr[int_mid]>search:
low=int_mid+1
elif arr[int_mid]<search:
high=int_mid-1
return arr[int_mid]
tc=int(input())
while(tc>0):
size=int(input())
A=list(map(int,input().split()))
B=list(map(int,input().split()))
monkiness=[]
for i in range(len(A)):
for j in range(len(B)):
if (j>=i):
y=BinarySearch(B,0,len(B),B[j])
z=BinarySearch(A,0,len(A),A[i])
print(y,z)
if y>=z:
m=j-i
monkiness.append(m)
if len(monkiness)==0:
print(0)
else:
print(monkiness)
maxiumum=max(monkiness)
print(maxiumum)
tc-=1
你的输入和输出是什么? –
它的值大约是1000+,所以它不适合here.Plus代码无法打印输出,因为在线编译器有时间限制,我的代码超过了时间限制。超链接提到了问题以及样本输入和输出。 –
二进制搜索不是最好的方法,但它可能可行。但是你需要自己创建一个测试用例 - 如果除了在一些随机网站上不能测试代码,可能会有比你猜测的更多或不同的问题。如果你要求其他人发现问题,提供一个失败或者太慢的测试用例几乎是必须的。 –