以下是一个示例代码,实现了按距离顺序找到元素对的功能:
def find_elements_by_distance(nums, target, k):
# 创建一个字典,用于存储每个元素与目标元素的距离
distances = {}
for i, num in enumerate(nums):
distances[num] = abs(num - target)
# 按照距离进行排序
sorted_distances = sorted(distances.items(), key=lambda x: x[1])
# 取出前 k 个元素对
result = []
for i in range(k):
result.append(sorted_distances[i][0])
return result
# 示例用法
nums = [1, 2, 3, 4, 5]
target = 3
k = 2
print(find_elements_by_distance(nums, target, k))
在这个示例代码中,我们首先创建了一个字典 distances
,用于存储每个元素与目标元素的距离。然后,我们使用 sorted()
函数对字典按照距离进行排序,并将排序结果存储在 sorted_distances
列表中。最后,我们取出 sorted_distances
列表中的前 k 个元素对,并返回结果。
在示例中,给定的数组是 [1, 2, 3, 4, 5]
,目标元素是 3,我们需要找到与目标元素距离最近的两个元素。运行代码后,输出结果为 [3, 2]
,表示距离目标元素最近的两个元素是 3 和 2。