LeetCode Entry
3761. Minimum Absolute Distance Between Mirror Pairs
Distance to prev mirror number
3761. Minimum Absolute Distance Between Mirror Pairs medium substack youtube

Join me on Telegram
https://t.me/leetcode_daily_unstoppable/1331
Problem TLDR
Distance to prev mirror number #medium
Intuition
Use a hashmap, scan, put mirrors into map, check for current number.
Approach
- Kotlin: string conversion is shorter
- Rust: (0..).zip(n), filter_map
Complexity
-
Time complexity: \(O(m)\)
-
Space complexity: \(O(n)\)
Code
// 232ms
fun minMirrorPairDistance(n: IntArray) = HashMap<Int, Int>().let { m ->
n.indices.minOf { i ->
i - (m[n[i]] ?: -n.size).also { m["${n[i]}".reversed().toInt()] = i }
}.takeIf { it < n.size } ?: -1
}
// 19ms
pub fn min_mirror_pair_distance(n: Vec<i32>) -> i32 {
let mut m = HashMap::new();
(0..).zip(n).filter_map(|(i, mut x)| {
let d = m.get(&x).map(|j| i-j);
let mut r = 0; while x > 0 {r = r*10+x%10; x /= 10}
m.insert(r, i); d
}).min().unwrap_or(-1)
}