1. 程式人生 > 實用技巧 >劍指offer42-和為S的兩個數字

劍指offer42-和為S的兩個數字

題目描述

輸入一個遞增排序的陣列和一個數字S,在陣列中查詢兩個數,使得他們的和正好是S,如果有多對數字的和等於S,輸出兩個數的乘積最小的。

返回值描述:

對應每個測試案例,輸出兩個數,小的先輸出。

示例

輸入 [1,2,4,7,11,15],15

返回值 [4,11]

知識點回顧

數學、陣列、雙指標

程式碼

解法一:暴力解題,雙重迴圈

# -*- coding:utf-8 -*-
class Solution:
    def FindNumbersWithSum(self, array, tsum):
        # write code here
        lenth=len(array)
        
for i in range(lenth): for j in range(i+1,lenth): if array[i]+array[j]==tsum: try: if array[i]*array[j]<a*b: a=array[i] b=array[j] except: a
=array[i] b=array[j] try: return [a,b] except: return []