diff options
Diffstat (limited to 'num_bad_pairs.rs')
-rw-r--r-- | num_bad_pairs.rs | 29 |
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 -} |