我想不出如何使列表中的随机数互相减去,而是找出最小的差。我不能使用def()、排序()、返回或任何导入,因为它们还没有在本课程中。
def findMinDiff(arr, n):
arr = sorted(arr)
diff = 10**20
for i in range(n-1):
if arr[i+1] - arr[i] < diff:
diff = arr[i+1] - arr[i]
return diff
arr = [4, 1, 2, 9, 7, 100, 5, 0, 99, 100]
n = len(arr)
print("The lowest different between two numbers is " + str(findMinDiff(arr, n)))样本输出:两个数字之间的最低差是0。
发布于 2022-07-09 11:26:47
要在列表中的任意两个相邻值之间找到最小的差异,您可以这样做:
arr = [4, 1, 2, 9, 7, 100, 5, 0, 99, 100]
smallest_diff = float('inf')
for x, y in zip(arr, arr[1:]):
if (diff := abs(x-y)) < smallest_diff:
smallest_diff = diff
print(smallest_diff)输出:
1发布于 2022-07-09 11:03:25
如您在标记中提到的那样,使用嵌套循环。
min_diff = abs( arr[0] - arr[1] )
for i in range(len(arr)-1):
for j in range(i+1,len(arr)):
diff = abs( arr[i] - arr[j] )
if diff < min_diff:
min_diff = diff感谢@stuart
https://stackoverflow.com/questions/72920752
复制相似问题