在Python中查找距离不连续的最小对和程序

在Python中查找距离不连续的最小对和程序

假设我们有一个名为nums的数字列表。现在让我们考虑任何一对下标(i,j),其中i1。然后找到最小的对和。

所以,如果输入是nums = [3,4,2,2,4],那么输出将是5,我们可以选择3和2这两个值,因此总和为5。我们无法选择2和2,因为它们是相邻的,违反了j-i>1的约束条件。

为了解决这个问题,我们将按照以下步骤进行操作 −

  • n:nums的大小
  • min_seen:nums[0]
  • ans:无限大
  • for i in range 2 to n – 1,do
    • ans = min(ans,min_seen + nums[i])
    • min_seen = min(min_seen,nums[i-1])
  • 返回ans

示例

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

def solve(nums):
   n = len(nums)
   min_seen = nums[0]

   ans = float("inf")

   for i in range(2, n):
      ans = min(ans, min_seen + nums[i])

      min_seen = min(min_seen, nums[i - 1])
   return ans

nums = [3, 4, 2, 2, 4]
print(solve(nums))

输入

[3, 4, 2, 2, 4]

输出

5

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程