Skip to content

Commit fc2d300

Browse files
committed
2563
1 parent cc13ebb commit fc2d300

File tree

3 files changed

+45
-1
lines changed

3 files changed

+45
-1
lines changed
+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
struct Solution;
2+
3+
fn lower_bound(nums: &[i32], bound: i32) -> i64 {
4+
let mut l = 0;
5+
let mut r = nums.len() - 1;
6+
let mut res = 0;
7+
while l < r {
8+
let sum = nums[l] + nums[r];
9+
if sum < bound {
10+
res += r - l;
11+
l += 1;
12+
} else {
13+
r -= 1;
14+
}
15+
}
16+
res as i64
17+
}
18+
19+
impl Solution {
20+
pub fn count_fair_pairs(mut nums: Vec<i32>, lower: i32, upper: i32) -> i64 {
21+
nums.sort();
22+
lower_bound(&nums, upper + 1) - lower_bound(&nums, lower)
23+
}
24+
}
25+
26+
#[test]
27+
fn test() {
28+
let nums = vec![0, 1, 7, 4, 4, 5];
29+
let lower = 3;
30+
let upper = 6;
31+
let res = 6;
32+
assert_eq!(Solution::count_fair_pairs(nums, lower, upper), res);
33+
let nums = vec![1, 7, 9, 2, 5];
34+
let lower = 11;
35+
let upper = 11;
36+
let res = 1;
37+
assert_eq!(Solution::count_fair_pairs(nums, lower, upper), res);
38+
let nums = vec![0, 0, 0, 0, 0, 0];
39+
let lower = 0;
40+
let upper = 0;
41+
let res = 15;
42+
assert_eq!(Solution::count_fair_pairs(nums, lower, upper), res);
43+
}

Diff for: leetcode/src/d25/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mod _2563_count_the_number_of_fair_pairs;

Diff for: leetcode/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,6 @@ mod d16;
3434
mod d17;
3535
mod d18;
3636
mod d19;
37-
//
3837
mod d20;
3938
mod d21;
39+
mod d25;

0 commit comments

Comments
 (0)