力扣2594.修车的最少时间

  • 二分答案

  •   class Solution {
      public:
          long long repairCars(vector<int>& ranks, int cars) {
              ranges::sort(ranks);
              auto check = [&](long long x) -> bool
              {
                  long long res = 0;
                  for(auto v : ranks)
                  {
                      long long k = sqrt(x/v);
                      res += k;
                      if(res >= cars) return true;
                  }
                  return false;
              };
              long long l = 1,r = (long long)ranks[0]*cars*cars;
              while(l < r)
              {
                  long long mid = (l+r)/2;
                  if(check(mid)) r = mid;
                  else l = mid + 1;
              }
              return l;
          }
      };
    

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部