解题思路:
首先排序,由于最小的绝对值差一定是相邻数字之间,所以两两遍历进行比较,设定一个diff差值作为最小差值,遇到更小的就更新,并清空ans,代码如下:
class Solution {
public:
vector<vector<int>> minimumAbsDifference(vector<int>& arr) {
int n = arr.size();
sort(arr.begin(), arr.end());
int diff = arr[1] - arr[0];
vector<vector<int>> ans;
for(int i = 1; i < n; i ++) {
if(arr[i] - arr[i - 1] == diff) {
ans.push_back({arr[i - 1], arr[i]});
} else if(arr[i] - arr[i - 1] < diff) {
diff = arr[i] - arr[i - 1];
ans.clear();
ans.push_back({arr[i - 1], arr[i]});
} else continue;
}
return ans;
}
};