剑指offer_二分法_和为S的两个数字

和为S的两个数字

在这里插入图片描述

# -*- coding:utf-8 -*-
class Solution:
    def FindNumbersWithSum(self, array, tsum):
        # write code here
        product = float("inf")
        left = 0
        right = len(array)-1
        minleft = None
        minright = None
        while left < right:
            if array[left] + array[right] == tsum:
                if array[left] * array[right] < product:
                    product = array[left] * array[right]
                    minleft, minright = left, right
                left += 1
                right -= 1
            elif array[left] + array[right] < tsum:
                left += 1
            else:
                right -= 1
        if minleft or minright:
            return array[minleft], array[minright]
        else:
            return []         
发布了31 篇原创文章 · 获赞 0 · 访问量 739

猜你喜欢

转载自blog.csdn.net/freedomUSTB/article/details/105011693