今日简单题:https://leetcode.cn/problems/minimum-absolute-difference/
本题思路就是先排序,关键点是如何一次遍历作出答案,这里要用到List的clear方法,一旦找到更小的差值时,要把之前存进List的答案都清空。
看下代码:
class Solution {
public List<List<Integer>> minimumAbsDifference(int[] arr) {
Arrays.sort(arr);
List<List<Integer>> list = new ArrayList<>();
int min = Integer.MAX_VALUE;
for (int i = 0; i < arr.length - 1; i++) {
int diff = arr[i + 1] - arr[i];
if (diff < min) {
min = diff;
list.clear();
List<Integer> cur = new ArrayList<>();
cur.add(arr[i]);
cur.add(arr[i + 1]);
list.add(cur);
} else if (diff == min) {
List<Integer> cur = new ArrayList<>();
cur.add(arr[i]);
cur.add(arr[i + 1]);
list.add(cur);
}
}
return list;
}
}