Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมหาระยะทางน้อยที่สุดไปยัง target element ด้วย Python


สมมติว่าเรามีอาร์เรย์ nums และค่า target (ซึ่งมีอยู่ใน nums แน่นอน) และ start เราต้องหา index i ที่ nums[i] = target และ |i - start| น้อยที่สุด คืนค่า |i - start| นั้น

เช่น nums = [3,4,5,6,7] target = 7 start = 2 ผลลัพธ์คือ 2 เพราะ nums[4] = 7 ดังนั้น i = 4, |4-2| = 2

ขั้นตอนการแก้ปัญหา

  • minimum = infinity
  • วนลูป i จาก 0 ถึง len(nums)-1:
    • ถ้า 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

ข้อมูลออก

2