用 Python 编写程序,查找距离不连续的最小对和
pythonserver side programmingprogramming更新于 2026/1/3 13:00:17
假设我们有一个名为的数字列表。现在让我们考虑任何一对索引 (i, j),其中 i < j 和 j - i > 1。然后找到最小的对和。
因此,如果输入像 nums = [3, 4, 2, 2, 4],则输出将为 5,我们可以选择值 3 和 2,因此总和为 5。我们不能选择 2 和 2,因为它们是相邻的,并且违反了 j - i > 1 个约束。
为了解决这个问题,我们将遵循以下步骤 −
- n := nums 的大小
- min_seen := nums[0]
- ans := inf
- 对于范围为 2 到 n - 1 的 i,执行
- ans := ans 和 (min_seen + nums[i]) 的最小值
- min_seen := 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 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

