使用 Python 查找目标元素的最小距离的程序


假设我们有一个数组 nums 和两个不同的值 target(target 必须出现在 nums 中)和 start,我们需要找到一个索引 i,使得 nums[i] = target 并且 |i - start| 最小。我们需要返回 |i - start|。

因此,如果输入类似于 nums = [3,4,5,6,7] target = 7 start = 2,则输出将为 2,因为只有一个值与 target 匹配,即 nums[4],所以 i = 4。现在 |4-2| = 2。

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

  • minimum := 无穷大

  • 对于 i 从 0 到 nums 的大小,执行

    • 如果 nums[i] 与 target 相同,则

      • 如果 |i - start| < minimum,则

        • minimum := |i - start|

  • 返回 minimum

让我们看看下面的实现以获得更好的理解 -

示例

from math import inf
def solve(nums, target, start):
   minimum = inf
   for i in range(len(nums)):
      if nums[i] == target:
         if abs(i - start) < minimum:
            minimum = abs(i - start)
   return minimum
nums = [3,4,5,6,7]
target = 7
start = 2
print(solve(nums, target, start))

输入

[3,4,5,6,7], 7, 2

Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.

输出

2

更新于: 2021年5月29日

958 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告