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

โปรแกรมค้นหาระยะทางขั้นต่ำไปยังองค์ประกอบเป้าหมายโดยใช้ Python


สมมติว่าเรามีจำนวนอาร์เรย์และค่าเป้าหมายสองค่าที่แตกต่างกัน (เป้าหมายต้องมีเป็น nums) และเริ่มต้น เราต้องหาดัชนี i เพื่อให้ nums[i] =target และ |i - start| เป็นขั้นต่ำ เราต้องคืนค่า |i - start|.

ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[3,4,5,6,7] target =7 start =2 ผลลัพธ์จะเป็น 2 เนื่องจากมีเพียงค่าเดียวที่ตรงกับเป้าหมาย นั่นคือ nums[4] ดังนั้น i =4 ตอนนี้ |4-2| =2.

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้:

  • ขั้นต่ำ :=อินฟินิตี้

  • สำหรับฉันในช่วง 0 ถึงขนาดของ nums ทำ

    • ถ้า nums[i] เหมือนกับเป้าหมายแล้ว

      • ถ้า |i - เริ่ม| <ขั้นต่ำแล้ว

        • ขั้นต่ำ :=|i - start|

  • ผลตอบแทนขั้นต่ำ

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

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