哎,刚才就编好了,有个错误找了半天,拿不了第一了def fun347(a,b):
def twoSplit(element):
if B[0]>=element:
return -1,(B[0]-element)
elif B[M-1] < element:
return (M-1),min([element-B[M-1],tempMin])
elif B[prePosition+1]>=element:
return prePosition,min([element-B[prePosition],B[prePosition+1]-element,tempMin])
else:
start = prePosition + 1
end = M-1
while True:
Mid = (start+end)//2
if B[Mid]>=element:
end = Mid
else:
if B[Mid+1]>=element:
return Mid,min([element-B[Mid],B[Mid+1]-element,tempMin])
else:
start = Mid
if len(a) < len(b):
A = sorted(a)
B = sorted(b)
else:
A = sorted(b)
B = sorted(a)
M = len(B)
prePosition = -1
tempMin = abs(A[0]-B[0])
for each in A:
prePosition,tempMin = twoSplit(each)
if tempMin == 0:
break
elif prePosition == M-1:
break
return tempMin
|