我有一个整数数组,带有一些有限数量的值。我的工作是找到数组中任何两个元素之间的最小差异。
考虑数组包含
4, 9, 1, 32, 13
在这里,差异是4和1之间的最小值,因此答案是3。
解决该问题的算法应该是什么。另外,我不知道为什么,但是我觉得使用树可以相对容易地解决这个问题。能做到吗?
最小差异将是按排序顺序的连续对之间的差异之一。对数组进行排序,然后遍历成对的相邻数字以寻找最小的差异:
int[] a = new int[] {4, 9, 1, 32, 13}; Arrays.sort(a); int minDiff = a[1]-a[0]; for (int i = 2 ; i != a.length ; i++) { minDiff = Math.min(minDiff, a[i]-a[i-1]); } System.out.println(minDiff);
打印3。
3