Python中找到最小数字对的程序,其和大于给定目标
假设我们有一个称为 nums 的数字列表和另一个值 target。我们必须找到大于目标的数字对的最小和。
因此,如果输入是 nums = [2, 4, 6, 10, 14],target = 10,则输出将是12,因为我们选择了2和10。
为了解决这个问题,我们将按照以下步骤进行-
- 排序列表 nums。
- n:=nums 的大小。
- answer:= 10^10。
- i:= 0,j:= n – 1。
- 当 i < j 时,执行以下操作-
- 如果 nums[i] + nums[j] > target,那么
- answer := answer 和 (nums[i] + nums[j]) 的最小值
- j := j – 1。
- 否则,
- i := i + 1。
- 如果 nums[i] + nums[j] > target,那么
- 返回 answer。
让我们看下面的实现以获得更好的理解-
更多Python相关文章,请阅读:Python 教程
示例
class Solution:
def solve(self, nums, target): nums.sort()
n = len(nums)
answer = 10 ** 10
i, j = 0, n - 1
while i < j:
if nums[i] + nums[j] > target:
answer = min(answer, nums[i] + nums[j])
j -= 1
else:
i += 1
return answer
ob = Solution()
nums = [2, 4, 6, 10, 14]
target = 10
print(ob.solve(nums, target))
输入
[2, 4, 6, 10, 14], 10
输出
12