題目
和爲S的兩個數字
解法
解法1 雙指針
class Solution:
def FindNumbersWithSum(self, array, tsum):
"""
從左右一起查找
因爲當兩個數的和一定的時候, 兩個數字的間隔越大, 乘積越小
所以直接輸出查找到的第一對數即可
:param array: 遞增排序的數組
:param tsum: 目標值
"""
if not array or not tsum:
return []
head = 0
tail = len(array)-1
while head < tail:
cur_sum = array[head]+array[tail]
if tsum == cur_sum:
return [array[head],array[tail]]
elif cur_sum <tsum:
head = head + 1
else:
tail = tail -1
return []
if __name__ == '__main__':
test = [1, 2, 4, 7, 11, 15]
s = Solution()
print(s.FindNumbersWithSum(test, 15))