题目描述
给定一个随机的整数数组(可能存在正整数和负整数)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
代码实现
# coding:utf-8class Solution:def minAbsSum(self, nums):total = 65535res = []sl = len(nums)for i in range(sl):for j in range(i, sl):if int(nums[i]) + int(nums[j]) < total:total = abs(int(nums[i]) + int(nums[j]))res = [nums[i], nums[j]]res = res + list(str(total))return ' '.join(res)if __name__ == '__main__':s = list(input('input arr:').split(' '))solution = Solution()print(solution.minAbsSum(s))