From 4fcc6f82d5b5ec075286772c12482e4c75dd462f Mon Sep 17 00:00:00 2001 From: jackfiled Date: Thu, 17 Apr 2025 14:49:40 +0800 Subject: [PATCH] 20250417 finished. --- src/problem/mod.rs | 2 + ...t_equal_and_divisible_pairs_in_an_array.rs | 39 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 src/problem/p2176_count_equal_and_divisible_pairs_in_an_array.rs diff --git a/src/problem/mod.rs b/src/problem/mod.rs index 88e1fd6..3bac7e0 100644 --- a/src/problem/mod.rs +++ b/src/problem/mod.rs @@ -603,3 +603,5 @@ mod p1534_count_good_triplets; mod p2179_count_good_triplets_in_an_array; mod p2537_count_the_number_of_good_subarrays; + +mod p2176_count_equal_and_divisible_pairs_in_an_array; diff --git a/src/problem/p2176_count_equal_and_divisible_pairs_in_an_array.rs b/src/problem/p2176_count_equal_and_divisible_pairs_in_an_array.rs new file mode 100644 index 0000000..151f4e4 --- /dev/null +++ b/src/problem/p2176_count_equal_and_divisible_pairs_in_an_array.rs @@ -0,0 +1,39 @@ +/** + * [2176] Count Equal and Divisible Pairs in an Array + */ +pub struct Solution {} + +// submission codes start here + +impl Solution { + pub fn count_pairs(nums: Vec, k: i32) -> i32 { + let k = k as usize; + let n = nums.len(); + + (0..n) + .into_iter() + .map(|x| (x + 1..n).into_iter().map(move |y| (x, y))) + .flatten() + .filter_map(|(i, j)| { + if nums[i] == nums[j] && i * j % k == 0 { + Some(()) + } else { + None + } + }) + .count() as i32 + } +} + +// submission codes end + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_2176() { + assert_eq!(4, Solution::count_pairs(vec![3, 1, 2, 2, 2, 1, 3], 2)); + assert_eq!(0, Solution::count_pairs(vec![1, 2, 3, 4], 1)); + } +}