用 Python 编写程序,查找大于给定目标的对的最小和

pythonserver side programmingprogramming

假设我们有一个名为 nums 的数字列表和另一个值 target。我们必须找到大于目标的对的最小和。

因此,如果输入为 nums = [2, 4, 6, 10, 14] target = 10,则输出将为 12,因为我们选择了 2 和 10

要解决这个问题,我们将遵循以下步骤 −

  • 对列表 nums 进行排序
  • n := nums 的大小
  • answer := 10^10
  • i := 0, j := n - 1
  • while i < j,执行
    • 如果 nums[i] + nums[j] > target,则
      • answer := answer 和 (nums[i] + nums[j]) 的最小值
      • j := j - 1
    • 否则,
      • i := i + 1
  • 返回 answer

让我们看看下面的实现以便更好地理解 −

示例

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

相关文章


有用资源