劍指Offer42:和為S的兩個數字
阿新 • • 發佈:2019-01-05
思路:
數列滿足遞增,設兩個頭尾兩個指標low和high,
若array[low]+array[high]==tsum,就是答案(low和high相差越遠乘積越小)
若array[low]+array[high]>tsum,high-=1
若array[low]+array[high]>tsum,low+= 1
# -*- coding:utf-8 -*- class Solution: def FindNumbersWithSum(self, array, tsum): # write code here low=0 high=len(array)-1 res=[] while low<high: if array[low]+array[high]==tsum: res.append(array[low]) res.append(array[high]) low+=1 high-=1 elif array[low]+array[high]>tsum: high-=1 else: low+=1 return res[:2]