Python中找到最小数字对的程序,其和大于给定目标

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。
  • 返回 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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程