20250212 finished.

This commit is contained in:
jackfiled 2025-02-12 12:27:40 +08:00
parent f0e73f5c42
commit 75a61a45f0
2 changed files with 45 additions and 0 deletions

View File

@ -480,3 +480,5 @@ mod p59_spiral_matrix_ii;
mod p913_cat_and_mouse;
mod p1728_cat_and_mouse_ii;
mod p1760_minimum_limit_of_balls_in_a_bag;

View File

@ -0,0 +1,43 @@
/**
* [1760] Minimum Limit of Balls in a Bag
*/
pub struct Solution {}
// submission codes start here
impl Solution {
pub fn minimum_size(nums: Vec<i32>, max_operations: i32) -> i32 {
let nums = nums.into_iter().map(|x| x as i64).collect::<Vec<i64>>();
let max_operations = max_operations as i64;
let max_num = *nums.iter().max().unwrap();
let mut left = 1; // check(left) == false
let mut right = max_num; // check(right) == true
// [left, right)
while left < right {
let middle = (right - left) / 2 + left;
if nums.iter().map(|x| (*x - 1) / middle).sum::<i64>() <= max_operations {
right = middle; // [left, middle)
} else {
left = middle + 1; // [middle + 1, right)
}
}
left as i32
}
}
// submission codes end
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_1760() {
assert_eq!(2, Solution::minimum_size(vec![2, 4, 8, 2], 4));
assert_eq!(3, Solution::minimum_size(vec![9], 2));
assert_eq!(7, Solution::minimum_size(vec![7, 17], 2));
}
}