|
发表于 2020-8-25 10:25:01
|
显示全部楼层
'''
本帖最后由 ooxx7788 于 2017-5-11 18:03 编辑
给定一个由数值组成的列表(array)和一个整数(interger),返回列表中相加之和等于整数的两个数。
列表长度最长为1000万,用时不超过12秒(好像是1.2秒,还是7秒,好烦没有给出明确时间)。
由于这个编辑器的关系,我实在没有办法正常对齐,所以你们就将就着看吧.
解题思路
1、采用列表的组合——没有重复方法,获取列的排列项
2、在这些排列中求和
'''
import itertools
def sum_pairs(lst,num):
lst_p = itertools.combinations(lst,2)
for i in lst_p :
if sum(i) == num:
return [j for j in i]
def assert_equals(func, target, *args):
if func == target:
print('Success!')
else:
print('Fail!{0} not equals {1}'.format(func, target))
print(*args)
print(sum_pairs([4,1,2,3],7)) |
|