使用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。

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

  • 最小值:=无穷大

  • 对于 i 在 0 到 nums 大小的范围内,请执行

    • 如果 |i - 开始| < 最小值,然后

    • 最小值 := |i - 开始|

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

    • 最低回报

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

    示例

    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
    输出结果
    2