首先,我们需要计算每个数字与目标值的差值,并将它们存储在一个字典中。然后,我们可以使用sorted函数和lambda函数来对数组进行排序。在lambda函数中,我们可以指定排序的关键字,即每个数字对应的差值。代码实现如下:
def sort_array_closest_to_solution(arr, solution):
diffs = {num: abs(num - solution) for num in arr}
sorted_arr = sorted(arr, key=lambda x: diffs[x])
return sorted_arr
示例输入:
arr = [5, 10, 3, 8, 6]
solution = 7
示例输出:
[6, 5, 8, 3, 10]
解释:按与7的差值从小到大的顺序排序,即[6, 5, 8, 3, 10]。