2023-09-07力扣每日一题
链接:
[2594. 修车的最少时间](https://leetcode.cn/problems/form-smallest-number-from-two-digit-arrays/)
题意:
一个能力R的人R*N*N分钟修N辆车,求最快多久修完(多人多车)
解:
二分很好想,主要是怎么检查(数学废物润去看题解了)
实际代码:
long long repairCars(vector<int>& ranks, int cars)
{typedef long long int ll;sort(ranks.begin(),ranks.end());ll l=1,r=1ll*ranks[ranks.size()-1]*pow(cars,2);while(l<r){ll m =(l+r)>>1;ll cnt=0;for(auto rank:ranks) cnt+=sqrt(m/rank);if(cnt>=cars) r=m;else l=m+1;}return l;
}
限制:
1 <= ranks.length <= 105
1 <= ranks[i] <= 100
1 <= cars <= 106