LeetCode Entry
1200. Minimum Absolute Difference
Min diff pairs
1200. Minimum Absolute Difference easy blog post substack youtube

Join me on Telegram
https://t.me/leetcode_daily_unstoppable/1249
Problem TLDR
Min diff pairs #easy
Intuition
Sort, compare adjucent pairs, find min, collect.
Approach
- groupBy.min also works
- updating the min diff and collecting can be done in a single go
Complexity
-
Time complexity: \(O(nlogn)\)
-
Space complexity: \(O(n)\)
Code
// 138ms
fun minimumAbsDifference(a: IntArray) = a.sorted()
.windowed(2).groupBy{(a,b)->b-a}.minBy{(k,v)->k}.value
// 3ms
pub fn minimum_abs_difference(mut a: Vec<i32>) -> Vec<Vec<i32>> {
a.sort(); let mut d = (1..a.len()).map(|i|a[i]-a[i-1]).min().unwrap();
a.windows(2).filter(|w|w[1]-w[0]==d).map(Vec::from).collect()
}