用 Python 编写程序,查找小于目标的两个数字之和
pythonserver side programmingprogramming更新于 2026/1/5 8:44:17
假设我们有一个名为 nums 的数字列表,并且还有一个目标值,我们必须找到 nums 中最大一对数字之和,其和最多为 (target-1)。
因此,如果输入为 nums = [8, 3, 4, 9, 2] target = 8,则输出将为 7,因为小于 8 的最大一对数字之和为 4 + 3 = 7。
要解决这个问题,我们将遵循以下步骤 −
- 对列表 nums 进行排序
- p1 := 0
- p2 := nums 的大小 - 1
- m := -inf
- while p1 < p2,执行
- 如果 nums[p1] + nums[p2] < target,则
- m := maximum of m and (nums[p1] + nums[p2])
- p1 := p1 + 1
- 否则,
- p2 := p2 - 1
- 如果 nums[p1] + nums[p2] < target,则
- 返回 m
示例
让我们看看下面的实现以便更好地理解 −
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
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

