https://leetcode.cn/problems/o8SXZn/submissions/
简单题,没做出来…
class Solution {
public:
int storeWater(vector<int>& bucket, vector<int>& vat) {
int operate = 0x3f3f3f3f, n = vat.size();
int maxk = *max_element(vat.begin(), vat.end());
if (maxk == 0) return 0; // 最大的蓄水要求为0时不用进行任何操作
for (int k = 1;k <= maxk && k < operate;k++)
{
int upgrade = 0;
for (int i = 0;i < n;i++)
{
int m = (vat[i] + k - 1) / k; // 向上取整不调用函数的方法, 调用函数=ceil()
upgrade += max(0, m - bucket[i]); // 将每个桶都进行升级
}
operate = min(operate, k + upgrade);
}
return operate;
}
};