Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python을 사용하여 대상 요소까지의 최소 거리를 찾는 프로그램

<시간/>

배열 nums와 두 개의 다른 값 target(target은 nums에 있어야 함)과 start가 있다고 가정하면 nums[i] =target 및 |i - start|가 되는 인덱스 i를 찾아야 합니다. 최소입니다. |i - start|를 반환해야 합니다.

따라서 입력이 nums =[3,4,5,6,7] target =7 start =2와 같으면 target과 일치하는 값이 하나만 있기 때문에 출력은 2가 됩니다. 즉, nums[4] , 그래서 나는 =4. 이제 |4-2| =2.

이 문제를 해결하기 위해 다음 단계를 따릅니다.

  • 최소 :=무한대

  • 범위 0에서 숫자 크기까지의 i에 대해

    • nums[i]가 대상과 같으면

      • 만약 |i - 시작| <최소, 다음

        • 최소 :=|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