天天上头条 发表于 2017-11-22 15:47:35

求大神帮忙看看,怎么做这题

题目:
已有一个没有重复的整数列表,如 ,有一个整数目标值,如9
这个目标值可能可以由列表中两个数字相加得到,如 2 + 7,-3 + 12, 4 +5
建立一个函数
def fun(mylist, target):
    return 列表
要求返回的列表为如下形式:
[, [-3, 12], ]
如果仅有一个返回

如果没有返回
[]
注:不要有重复的,如和

第四时空 发表于 2017-11-22 16:06:32

好眼熟,126题

天天上头条 发表于 2017-11-22 16:07:28

第四时空 发表于 2017-11-22 16:06
好眼熟,126题

怎么解呢,用了两个for循环,还是不行

第四时空 发表于 2017-11-22 16:30:19

天天上头条 发表于 2017-11-22 16:07
怎么解呢,用了两个for循环,还是不行

def fun(mylist, target):
    mylist = sorted(mylist)
    result = []
    for i in range(0, len(mylist)):
      if mylist > target / 2:
            break
      for j in range(i + 1, len(mylist)):
            if mylist + mylist > target:
                break
            if mylist + mylist == target:
                result.append(, mylist])
    return result if len(result) == 1 else result
可以参考一下

BngThea 发表于 2017-11-22 17:35:05

你可以等到答案揭晓

yjsx86 发表于 2017-11-22 17:56:32

这是我写的~互勉
L =
def fun(mylist, target):
    newlist = mylist[:]
    rs = []
    for i in mylist:
      for j in newlist:
            if i + j == target:
                rs.append()
      newlist.remove(i)
    if len(rs) == 1:
      return rs
    else:
      return rs

#测试代码
for x in range(10):
    r = fun(L,x)
    print(r)

天天上头条 发表于 2017-11-22 20:27:55

第四时空 发表于 2017-11-22 16:30
可以参考一下

3Q
页: [1]
查看完整版本: 求大神帮忙看看,怎么做这题