題目
輸入一個遞增排序的數組和一個數字S,在數組中查找兩個數,是的他們的和正好是S,如果有多對數字的和等於S,輸出兩個數的乘積最小的。
輸出描述:
對應每個測試案例,輸出兩個數,小的先輸出。
思路
雙指針,一個從左向右遍歷,一個從右向左遍歷。
代碼
# -*- coding:utf-8 -*-
class Solution:
def FindNumbersWithSum(self, array, tsum):
# write code here
left = 0; right = len(array) - 1
while left < right:
num = array[left] + array[right]
if num == tsum: return[array[left], array[right]]
elif num < tsum: left += 1
else: right -= 1
return []