20250420 finished.

This commit is contained in:
jackfiled 2025-04-20 14:52:00 +08:00
parent 22d2deb7f8
commit f28502e89d
3 changed files with 49 additions and 1 deletions

View File

@ -609,3 +609,5 @@ mod p2176_count_equal_and_divisible_pairs_in_an_array;
mod p2364_count_number_of_bad_pairs;
mod p2563_count_the_number_of_fair_pairs;
mod p781_rabbits_in_forest;

View File

@ -14,7 +14,7 @@ impl Solution {
let l = nums[0..i].partition_point(|&x| x + nums[i] < lower);
let r = nums[0..i].partition_point(|&x| x + nums[i] <= upper);
result += (r - l);
result += r - l;
}
result as i64

View File

@ -0,0 +1,46 @@
/**
* [781] Rabbits in Forest
*/
pub struct Solution {}
// submission codes start here
use std::collections::HashMap;
impl Solution {
pub fn num_rabbits(answers: Vec<i32>) -> i32 {
let mut map = HashMap::new();
for i in answers.into_iter() {
let entry = map.entry(i).or_insert(0);
*entry += 1;
}
let mut result = 0;
for (k, mut v) in map.into_iter() {
// 同种颜色兔子最多有k + 1个
let max_count = k + 1;
while v > 0 {
result += max_count;
v -= max_count;
}
}
result
}
}
// submission codes end
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_781() {
assert_eq!(5, Solution::num_rabbits(vec![1, 0, 1, 0, 0]));
assert_eq!(5, Solution::num_rabbits(vec![1, 1, 2]));
assert_eq!(11, Solution::num_rabbits(vec![10, 10, 10]))
}
}