和为S的两个数字

来源:互联网 发布:单用户商城源码 编辑:程序博客网 时间:2024/06/08 11:33

题目描述

输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 
输出描述:
对应每个测试案例,输出两个数,小的先输出。
因为序列是从小到大排好序的,所以从前往后遍历的时候找到的第一个就是最小的(找几个数据试一下就明白,这是客观事实)

# -*- coding:utf-8 -*-class Solution:    def FindNumbersWithSum(self, array, tsum):        ls = []        if not isinstance(array, list):# 一定要判断array是不是list,不然下面的len会出错            return ls        num = len(array)        x = 0        y = num - 1        while x < y:            if array[x] + array[y] == tsum:                ls.append(array[x])                ls.append(array[y])                return ls            elif array[x] + array[y] < tsum:                x += 1            elif array[x] + array[y] > tsum:                y -= 1        return ls





0 0
原创粉丝点击