2021-12-20 Daily-Challenge
Today I have done leetcode's December LeetCoding Challenge with cpp.
December LeetCoding Challenge 20
Description
Minimum Absolute Difference
Given an array of distinct integers arr, find all pairs of elements with the minimum absolute difference of any two elements.
Return a list of pairs in ascending order(with respect to pairs), each pair [a, b] follows
a, bare fromarra < bb - aequals to the minimum absolute difference of any two elements inarr
Example 1:
Input: arr = [4,2,1,3]
Output: [[1,2],[2,3],[3,4]]
Explanation: The minimum absolute difference is 1. List all pairs with difference equal to 1 in ascending order.
Example 2:
Input: arr = [1,3,6,10,15]
Output: [[1,3]]
Example 3:
Input: arr = [3,8,-10,23,19,-4,-14,27]
Output: [[-14,-10],[19,23],[23,27]]
Constraints:
2 <= arr.length <= 10^5-10^6 <= arr[i] <= 10^6
Solution
auto speedup = [](){
cin.tie(nullptr);
cout.tie(nullptr);
ios::sync_with_stdio(false);
return 0;
}();
class Solution {
public:
vector<vector<int>> minimumAbsDifference(vector<int>& arr) {
sort(arr.begin(), arr.end());
int len = arr.size();
int minDiff = INT_MAX;
for(int i = 1; i < len; ++i) {
minDiff = min(minDiff, arr[i] - arr[i - 1]);
}
vector<vector<int>> answer;
for(int i = 1; i < len; ++i) {
if(arr[i] - arr[i - 1] == minDiff) {
answer.push_back({arr[i - 1], arr[i]});
}
}
return answer;
}
};
// Accepted
// 36/36 cases passed (36 ms)
// Your runtime beats 100 % of cpp submissions
// Your memory usage beats 76.65 % of cpp submissions (32.2 MB)