题目来源:
leetcode题目,网址:1200. 最小绝对差 - 力扣(LeetCode)
解题思路:
将数组按升序排序后,计算相邻两项差值,返回差值为最小绝对差的项。
解题代码:
class Solution {
public List<List<Integer>> minimumAbsDifference(int[] arr) {
List<List<Integer>> res=new ArrayList<>();
Arrays.sort(arr);
int min=arr[1]-arr[0];
res.add(new ArrayList<Integer>(Arrays.asList(arr[0],arr[1])));
for(int i=1;i<arr.length-1;i++){
if(arr[i+1]-arr[i]<min){
min=arr[i+1]-arr[i];
res.clear();
res.add(new ArrayList<Integer>(Arrays.asList(arr[i],arr[i+1])));
}else if(arr[i+1]-arr[i]==min){
res.add(new ArrayList<Integer>(Arrays.asList(arr[i],arr[i+1])));
}
}
return res;
}
}
总结:
官方题解也是排序加一次遍历。