Find the Smallest Divisor Given a Threshold LeetCode solution in C++
1class Solution {2public:3int smallestDivisor(vector<int> &nums, int threshold) {4int l = 1, r = 0;5for (int n : nums) r = max(r, n);67int mid, s = 0;8while (l < r) {9s = 0;10mid = l + (r - l) / 2;11for (int n : nums) {12s += n / mid + (n % mid != 0);13}14if (s <= threshold) {15r = mid;16} else {17l = mid + 1;18}19}20return r;21}22};