通过万岁!!!
- 题目:给你一个数组,然后让你找到数组中两个数之差绝对值的最小值。并且把满足这个最小值的组合都找出来,并且按照升序排序。
- 思路:首先对数组进行排序,这样我们只需要计算i和i-1即可。然后第一次便利,我们找到最小值,第二次便利,我们找到最小值对应的组合即可。
- 技巧:数组排序遍历。
java代码
class Solution {
public List<List<Integer>> minimumAbsDifference(int[] arr) {
Arrays.sort(arr);
int min = arr[1] - arr[0];
for (int i = 2; i < arr.length; i++) {
min = Math.min(min, arr[i] - arr[i - 1]);
}
List<List<Integer>> ans = new ArrayList<>();
for (int i = 1; i < arr.length; i++) {
if (min == arr[i] - arr[i - 1]) {
ans.add(Arrays.asList(arr[i - 1], arr[i]));
}
}
return ans;
}
}
- 总结:题目比较简单,但是我的时间复杂度不是很好。