aboutsummaryrefslogtreecommitdiff
path: root/other/num_bad_pairs.rs
diff options
context:
space:
mode:
Diffstat (limited to 'other/num_bad_pairs.rs')
-rw-r--r--other/num_bad_pairs.rs30
1 files changed, 0 insertions, 30 deletions
diff --git a/other/num_bad_pairs.rs b/other/num_bad_pairs.rs
deleted file mode 100644
index 88119d8..0000000
--- a/other/num_bad_pairs.rs
+++ /dev/null
@@ -1,30 +0,0 @@
-// 2364. Count Number of Bad Pairs
-use std::collections::HashMap;
-struct Solution;
-
-/*
- * you are given a 0-indexed integer array 'nums'. a pair of indices '(i, j)' is
- * a bad pair if 'i < j' and 'j - i != nums[j] - nums[i]'. return the total
- * number of bad pairs in 'nums'.
- */
-
-impl Solution {
- pub fn count_bad_pairs(nums: Vec<i32>) -> i64 {
- let mut hm: HashMap<i32, i32> = HashMap::with_capacity(nums.len());
- let mut ans = 0;
- nums.iter().zip(0..).for_each(|(&x, i)| {
- let delta = x - i;
- let e = hm.entry(delta).or_default();
- ans += (i - *e) as i64;
- *e += 1;
- });
- ans
- }
-}
-
-fn main() {
- let n1 = vec![4, 1, 3, 3];
- let n2 = vec![1, 2, 3, 4, 5];
- println!("{}", Solution::count_bad_pairs(n1)); //expect: 5
- println!("{}", Solution::count_bad_pairs(n2)); //expect: 0
-}