我尝试了这个,但是却输了价:
def maxDistance(dis,x):
max=0
flag="True"
if sum(dis) <= x :
return sum(dis)
for i in range(len(dis)):
if dis[i] == x:
return dis[i]
break
if dis[i] < x:
flag="False"
if dis[i] > max and dis[i] < x:
max = dis[i]
for j in range(i+1,len(dis)):
if dis[i]+dis[j] > max and dis[i]+dis[j] <= x:
max = dis[i]+dis[j]
if flag == "True":
return "Your integer is smaller than your list"
else:
return max
我不知道问题出在哪里。
答案 0 :(得分:0)
让您的列表为l1
,第二个arg作为限制为a1
,然后:-
>>> l1 = [1,4,6,10]
>>> a1 = 9
>>> from itertools import combinations as comb
>>>
>>> v1 = list(comb(l1,2)) # making list of combinations of 2-2 elements of list l1
>>>
>>> def max1(dis, x):
... var = 0
... for i in dis:
... if sum(i) <= x and sum(i) >= var: var = sum(i) # doing comparision
... return var
...
>>> max1(v1, a1) # this will give the intended output.
7