[python2] 57 和為S的兩個數(shù)

題目描述

題目思路及代碼如下:

# -*- coding:utf-8 -*-
class Solution:
    def FindNumbersWithSum(self, array, tsum):
        # write code here
        # 使用左右兩個指針來遍歷整個數(shù)組挣棕。左指針從數(shù)組頭部開始坷牛,右指針從數(shù)組尾部開始蕴侣,若兩數(shù)和等于tsum雁歌,則返回兩個數(shù);
        # 若兩數(shù)和大于tsum,則右指針向左移一位活合;若兩數(shù)和小于tsum,則左指針右移一位
        sumS = []
        leftPtr = 0
        rightPtr = len(array) - 1
        while leftPtr <= rightPtr: 
            if array[leftPtr] + array[rightPtr] == tsum:
                sumTemp = []
                sumTemp.append(array[leftPtr])
                sumTemp.append(array[rightPtr])
                sumS.append(sumTemp)
                # 這里要注意雏婶,由于不是只輸出一組和為S的數(shù)字就可以了,而是需要進一步比較乘積白指,因此這里還需要繼續(xù)遍歷留晚,直到遍歷完所有的組合
                leftPtr += 1
            elif array[leftPtr] + array[rightPtr] > tsum:
                rightPtr -= 1
            else:
                leftPtr += 1
        # sumS中保存了所有和為tsum的兩個數(shù),以[[],[],[]...]的形式保存
        # 下面需要判斷計算每兩個數(shù)的乘積告嘲,返回乘積最小的兩個數(shù)
        if len(sumS) == 0:
            return []
        elif len(sumS) > 1:
            multiply = []
            for sumSS in sumS:
                multiplyTemp = sumSS[0] * sumSS[1]
                multiply.append(multiplyTemp)
            sumMin = multiply[0]
            indexMin = 0
            for index in range(1, len(multiply) - 1):
                if multiply[index] < sumMin:
                    sumMin = multiply[index]
                    indexMin = index
            return sumS[indexMin]
        elif len(sumS) == 1:
            return sumS[0] #對于輸出部分需要注意错维,雖然說要輸出兩個數(shù),但是這兩個數(shù)作為一個list整體輸出也是可以的

if __name__ == "__main__":
    s = Solution()
    array = [1, 2, 4, 7, 11, 15]
    tsum = 15
    a, b = s.FindNumbersWithSum(array, tsum)
    print(a, b)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末橄唬,一起剝皮案震驚了整個濱河市赋焕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌仰楚,老刑警劉巖隆判,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異僧界,居然都是意外死亡侨嘀,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門捂襟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來咬腕,“玉大人,你說我怎么就攤上這事葬荷≌枪玻” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵宠漩,是天一觀的道長举反。 經(jīng)常有香客問我,道長哄孤,這世上最難降的妖魔是什么照筑? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任吹截,我火速辦了婚禮瘦陈,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘波俄。我一直安慰自己晨逝,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布懦铺。 她就那樣靜靜地躺著捉貌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上趁窃,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天牧挣,我揣著相機與錄音,去河邊找鬼醒陆。 笑死瀑构,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的刨摩。 我是一名探鬼主播寺晌,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼澡刹!你這毒婦竟也來了呻征?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤罢浇,失蹤者是張志新(化名)和其女友劉穎陆赋,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嚷闭,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡奏甫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了凌受。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阵子。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖胜蛉,靈堂內(nèi)的尸體忽然破棺而出挠进,到底是詐尸還是另有隱情,我是刑警寧澤誊册,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布领突,位于F島的核電站,受9級特大地震影響案怯,放射性物質(zhì)發(fā)生泄漏君旦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一嘲碱、第九天 我趴在偏房一處隱蔽的房頂上張望金砍。 院中可真熱鬧,春花似錦麦锯、人聲如沸恕稠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鹅巍。三九已至千扶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間骆捧,已是汗流浹背澎羞。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留敛苇,地道東北人煤痕。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像接谨,于是被迫代替她去往敵國和親摆碉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 題目描述 輸入一個遞增排序的數(shù)組和一個數(shù)字S脓豪,在數(shù)組中查找兩個數(shù)巷帝,使得他們的和正好是S,如果有多對數(shù)字的和等于S扫夜,...
    zhouwaiqiang閱讀 251評論 0 1
  • 總結(jié) 想清楚再編碼 分析方法:舉例子楞泼、畫圖 第1節(jié):畫圖分析方法 對于二叉樹、二維數(shù)組笤闯、鏈表等問題堕阔,都可以采用畫圖...
    M_巴拉巴拉閱讀 1,204評論 0 7
  • 問題描述給出一個遞增數(shù)組和一個目標值s,找出和為s的兩個數(shù)問題解法定義兩個指針start,end颗味,分別指向頭與尾超陆。...
    NetCedar閱讀 302評論 0 0
  • 工廠模式 單體模式 模塊模式 代理模式 職責(zé)鏈模式 命令模式 模板方法模式 策略模式 發(fā)布-訂閱模式 中介者模式 ...
    HelloJames閱讀 1,008評論 0 6
  • 上周有幸讀到戰(zhàn)友的習(xí)作《2018個人目標怎么破?》。 如何開始呢浦马?首先时呀,2017年的復(fù)盤你做好了嗎晶默?回首過去谨娜,才能...
    007歡閱讀 274評論 1 2