aboutsummaryrefslogtreecommitdiff
path: root/num_bad_pairs.rs
diff options
context:
space:
mode:
Diffstat (limited to 'num_bad_pairs.rs')
-rw-r--r--num_bad_pairs.rs29
1 files changed, 0 insertions, 29 deletions
diff --git a/num_bad_pairs.rs b/num_bad_pairs.rs
deleted file mode 100644
index 8e1e7dd..0000000
--- a/num_bad_pairs.rs
+++ /dev/null
@@ -1,29 +0,0 @@
-use std::collections::HashMap;
-struct Solution;
-
-/*
- * given: 0-indexed integer array
- * bad pair: (i, j) if
- * i < j && j - i != nums[j] - nums[i]
- */
-
-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 nums1 = vec![4,1,3,3];
- let nums2 = vec![1,2,3,4,5];
- println!("{}", Solution::count_bad_pairs(nums1)); //expect: 5
- println!("{}", Solution::count_bad_pairs(nums2)); //expect: 0
-}