Skip to content

M1760.袋子里最少数目的球

binary search, https://leetcode.cn/problems/minimum-limit-of-balls-in-a-bag/

二分答案

cpp
class Solution {
public:
    int minimumSize(vector<int>& nums, int maxOperations) {
        int l = 1, r = *max_element(nums.begin(), nums.end());
        int n = nums.size();
        while (l <= r) {
            int mid = l + (r - l) / 2;
            long long tmp = 0;
            for (int i = 0; i < n; i++) {
                tmp += (nums[i] / mid - 1);
                if (nums[i] % mid) tmp ++;
            }
            if (tmp <= maxOperations) r = mid - 1;
            else l = mid + 1;
        }
        return l;
    }
};