20250212 finished.
This commit is contained in:
parent
f0e73f5c42
commit
75a61a45f0
|
@ -480,3 +480,5 @@ mod p59_spiral_matrix_ii;
|
||||||
mod p913_cat_and_mouse;
|
mod p913_cat_and_mouse;
|
||||||
|
|
||||||
mod p1728_cat_and_mouse_ii;
|
mod p1728_cat_and_mouse_ii;
|
||||||
|
|
||||||
|
mod p1760_minimum_limit_of_balls_in_a_bag;
|
||||||
|
|
43
src/problem/p1760_minimum_limit_of_balls_in_a_bag.rs
Normal file
43
src/problem/p1760_minimum_limit_of_balls_in_a_bag.rs
Normal 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));
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user