和爲S的兩個數字(python)

和爲S的兩個數字

題目

和爲S的兩個數字

解法

解法1 雙指針

# -*- coding:utf-8 -*-
class Solution:
    def FindNumbersWithSum(self, array, tsum):
        """
        從左右一起查找
        因爲當兩個數的和一定的時候, 兩個數字的間隔越大, 乘積越小
        所以直接輸出查找到的第一對數即可
        :param array: 遞增排序的數組
        :param tsum: 目標值
        """
        # write code here
        if not array or not tsum:
            return []
        head = 0
        tail = len(array)-1

        while head < tail:
            cur_sum = array[head]+array[tail]
            if tsum == cur_sum:
                return [array[head],array[tail]]
            elif cur_sum <tsum:
                head = head + 1
            else:
                tail = tail -1
        return []

if __name__ == '__main__':
    test = [1, 2, 4, 7, 11, 15]
    s = Solution()
    print(s.FindNumbersWithSum(test, 15))
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章