面試題57.1:和為S的兩個數(shù)字

題目描述

輸入一個遞增排序的數(shù)組和一個數(shù)字S,在數(shù)組中查找兩個數(shù),使得他們的和正好是S,如果有多對數(shù)字的和等于S,輸出兩個數(shù)的乘積最小的。

輸出描述:
對應每個測試案例,輸出兩個數(shù),小的先輸出。

知識點

數(shù)組


Qiang的思路

對于這個問題,只需要設置兩個指針,一個指向數(shù)組的最左邊,一個指向最右邊,然后判斷兩個數(shù)的和和S是不是相等,如果相等的話就是要求的解。如果和大于S,說明最大值太大了,只需要將右邊的指針往前走。如果小的話就需要將左邊的指針往后走。如果兩個指針的相對位置發(fā)生了改變,就說明并不存在題目要求的兩個數(shù),這時返回一個空個list即可。

# -*- coding:utf-8 -*-
class Solution:
    def FindNumbersWithSum(self, array, tsum):
        # write code here
        left=0
        right=len(array)-1
        while left<right:
            if array[right]+array[left]==tsum:
                return [array[left], array[right]]
            elif array[right]+array[left]>tsum:
                right-=1
            else:
                left+=1
        return []

作者原創(chuàng),如需轉(zhuǎn)載及其他問題請郵箱聯(lián)系:lwqiang_chn@163.com。
個人網(wǎng)站:https://www.myqiang.top。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容