class Solution {
public List<List<Integer>> minimumAbsDifference(int[] arr) {
int length = arr.length;
List<List<Integer>> lists = new ArrayList<>();
Arrays.sort(arr);
/**
* 数组长度大于2 先加入List
*/
int val = Math.abs(arr[0] - arr[1]); // 用于保存最小值
List<Integer> listInit = new ArrayList<>();
listInit.add(arr[0]);
listInit.add(arr[1]);
lists.add(listInit);
for (int i = 1; i < length - 1; i++) {
if (val == (Math.abs(arr[i] - arr[i + 1]))) {
// 相等时持续加入List
List<Integer> listAdd = new ArrayList<>();
listAdd.add(arr[i]);
listAdd.add(arr[i + 1]);
lists.add(listAdd);
} else if (val > (Math.abs(arr[i] - arr[i + 1]))) {
// 小于val时清空,重新赋值
val = (Math.abs(arr[i] - arr[i + 1]));
lists.clear();
List<Integer> listAdd = new ArrayList<>();
listAdd.add(arr[i]);
listAdd.add(arr[i + 1]);
lists.add(listAdd);
} else {
continue; // 指针后移
}
}
return lists;
}
}
最小绝对差-leetcode1200
猜你喜欢
转载自blog.csdn.net/for62/article/details/108015834
今日推荐
周排行