在Python中查找小于目标的两个数字之和的程序
假设我们有一个名为nums的数字列表,并且还有一个目标值,我们必须找到nums中最大的一对数字的总和,其总和为(target-1)。
因此,如果输入类似于nums=[8,3,4,9,2]target=8,那么输出将是7,因为小于8的最大数字对的总和是4+3=7。
示例
让我们看看以下实现以获得更好的理解-
import math def solve(nums, target): nums.sort() p1 = 0 p2 = len(nums) - 1 m = -math.inf while p1 < p2: if nums[p1] + nums[p2] < target: m = max(m, nums[p1] + nums[p2]) p1 += 1 else: p2 -= 1 return m nums = [8, 3, 4, 9, 2] target = 8 print(solve(nums, target))
输入
[8, 3, 4, 9, 2], 8输出结果
7