Cho mảng nums, giá trị target (đảm bảo có trong nums) và chỉ số start. Tìm chỉ số i sao cho nums[i] = target và |i - start| nhỏ nhất. Trả về khoảng cách đó.
Ví dụ: nums = [3,4,5,6,7], target = 7, start = 2. Chỉ i=4 thỏa mãn → |4-2| = 2.
Thuật toán giải quyết
- minimum := vô cực.
- Duyệt i từ 0 đến len(nums)-1:
- Nếu nums[i] == target: minimum = min(minimum, abs(i - start)).
- Trả về minimum.
Ví dụ triển khai
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))Đầu vào
[3,4,5,6,7], 7, 2
Đầu ra
2