在Python中查找两个小于目标值的数字之和
假设我们有一个名为nums的数字列表,还有一个目标值,我们必须找到nums中最大的数字对的总和,其总和最多为(目标值-1)。
因此,如果输入为nums = [8, 3, 4, 9, 2],目标=8,则输出将为7,因为小于8的最大数字对的总和为4 + 3 = 7。
为了解决这个问题,我们将按照以下步骤进行操作−
- 排序列表nums
- p1 := 0
- p2 := nums的大小-1
- m :=-inf
- while p1 < p2,则
- 如果nums[p1] + nums[p2]<target,则
- m :=m和(nums[p1] + nums[p2])的最大值
- p1 := p1 + 1
- 否则,
- p2 :=p2 – 1
- 如果nums[p1] + nums[p2]<target,则
- 返回m
示例
让我们看以下方法以获得更好的理解−