题目描述:
给定一个随机的整数数组(可能存在正整数和负整数)nums。
请你在该数组中找出两个数,其和的绝对值(|nums[x]+nums[y]|)为最小值。
并返回这两个数(按从小到大返回)以及绝对值。
每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
输入描述:
一个通过空格空格分割的有序整数序列字符串,最多1000个整数,且整数数值范围是[-65535,65535]
输出描述:
两个数和两数之和绝对值
示例:
输入:
-1 -3 7 5 11 15
输出:-3 5 2
说明:
因为|nums[0]+nums[2]|=|-3+5|=2最小,所以返回-3 5 2
#解题想法:两次循环,依次求和的绝对值,发现更小的,就清空再记录,否则不操作
while 1:
try:
s="-1 -3 7 5 11 15"
l=list(map(int,s.split(" ")))
res=[]
m=65535*2
for i in range(0,len(l)):
for j in range(i+1,len(l)):
tmp=abs(l[i]+l[j])
if tmp<m:
m=tmp
res.clear()
o=[l[i],l[j],tmp]
res.extend(o)
print(" ".join(map(str,res)))
break
except Exception as e:
print(e)
break