题目描述

输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。

输出描述:

对应每个测试案例,输出两个数,小的先输出。

  1. class Solution:
  2. def FindNumbersWithSum(self, array, tsum):
  3. # write code here
  4. res = [float('-inf'),float('-inf')]
  5. l,r = 0,len(array)-1
  6. while l<r:
  7. if array[l]+array[r]==tsum and array[l]*array[r]<res[0]*res[1]:
  8. res[0],res[1] =array[l],array[r]
  9. elif array[l]+array[r]<tsum:
  10. l +=1
  11. else:
  12. r -=1
  13. return res if res[0]!=float('-inf') else []