Minimum Absolute Difference
给一个数组, 返回差最小的两个数, 如果答案不唯一, 返回所有的两个数的数字. 先排序, 然后找到最小差, 然后再扫一边找到答案.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
class Solution { public List<List<Integer>> minimumAbsDifference(int[] arr) { Arrays.sort(arr); int min = Integer.MAX_VALUE; for(int i = 1; i < arr.length; i++) { min = Math.min(min, arr[i] - arr[i-1]); } List<List<Integer>> res = new ArrayList<List<Integer>>(); for(int i = 1; i < arr.length; i++) { if(arr[i] - arr[i-1] == min) { List<Integer> a = new ArrayList<>(); a.add(arr[i-1]); a.add(arr[i]); res.add(a); } } return res; } } |