1. 程式人生 > >劍指offer 面試57題

劍指offer 面試57題

pan 時間 num 遞增 true class pre elif TE

面試57題:

題目:和為s的數字

題目描述

輸入一個遞增排序的數組和一個數字S,在數組中查找兩個數,是的他們的和正好是S,如果有多對數字的和等於S,輸出兩個數的乘積最小的。 輸出描述:
對應每個測試案例,輸出兩個數,小的先輸出。

解題思路:使用while循環從兩端向中間掃描數組,時間復雜度為O(n)

解題代碼:

# -*- coding:utf-8 -*-
class Solution:
    def FindNumbersWithSum(self, array, tsum):
        # write code here
        if len(array)<2:
            
return [] found=False fst,lst=0,len(array)-1 while fst<lst: sum_total=array[fst]+array[lst] if sum_total==tsum: found=True return [array[fst],array[lst]] elif sum_total<tsum: fst +=1 else
: lst -=1 return []




劍指offer 面試57題