• LeetCode每日一题:2594. 修车的最少时间(2023.9.7 C++)


    目录

    2594. 修车的最少时间

    题目描述:

    实现代码与解析:

    二分

    原理思路:


    2594. 修车的最少时间

    题目描述:

            给你一个整数数组 ranks ,表示一些机械工的 能力值 。ranksi 是第 i 位机械工的能力值。能力值为 r 的机械工可以在 r * n2 分钟内修好 n 辆车。

    同时给你一个整数 cars ,表示总共需要修理的汽车数目。

    请你返回修理所有汽车 最少 需要多少时间。

    注意:所有机械工可以同时修理汽车。        

    示例 1:

    输入:ranks = [4,2,3,1], cars = 10
    输出:16
    解释:
    - 第一位机械工修 2 辆车,需要 4 * 2 * 2 = 16 分钟。
    - 第二位机械工修 2 辆车,需要 2 * 2 * 2 = 8 分钟。
    - 第三位机械工修 2 辆车,需要 3 * 2 * 2 = 12 分钟。
    - 第四位机械工修 4 辆车,需要 1 * 4 * 4 = 16 分钟。
    16 分钟是修理完所有车需要的最少时间。
    

    示例 2:

    输入:ranks = [5,1,8], cars = 6
    输出:16
    解释:
    - 第一位机械工修 1 辆车,需要 5 * 1 * 1 = 5 分钟。
    - 第二位机械工修 4 辆车,需要 1 * 4 * 4 = 16 分钟。
    - 第三位机械工修 1 辆车,需要 8 * 1 * 1 = 8 分钟。
    16 分钟时修理完所有车需要的最少时间。
    

    提示:

    • 1 <= ranks.length <= 105
    • 1 <= ranks[i] <= 100
    • 1 <= cars <= 106

    实现代码与解析:

    二分

    1. class Solution {
    2. public:
    3. bool check(long long mid, vector<int> ranks, int cars)
    4. {
    5. long long sum = 0;
    6. for (auto t : ranks)
    7. sum += (long long)sqrt(mid / t);
    8. if (sum >= cars) return true;
    9. else return false;
    10. }
    11. long long repairCars(vector<int>& ranks, int cars) {
    12. sort(ranks.begin(), ranks.end());
    13. long long l = 1, r = 1ll * ranks[0] * cars * cars;
    14. while(l < r)
    15. {
    16. long long mid = l + r >> 1;
    17. if (check(mid, ranks, cars)) r = mid;
    18. else l = mid + 1;
    19. }
    20. return l;
    21. }
    22. };

    原理思路:

            看是否能用二分,判断一下值的范围是否有单调性,大于等于某一时间可以把车都修好,小于某一时间则不能,因此可以用二分。

            二分直接套板子即可,check就是检验一下当前时间能不能把车修完,大于等于车的数量说明可以修完。

            记得开 long long ,1ll 的作用是将int临时转化为 long long 赋值给左边的 long long 类型。学到了。

  • 相关阅读:
    界面控件Telerik UI for WPF——Windows 11主题精简模式提升应用体验
    Unity 导航寻路快速上手
    网络编程之:TCP服务器的简单实现
    Android离线文字识别-tesseract4android调用
    服务器巡检表-监控指标
    GMM基础
    Docker部署MySql
    0xc000007b应用程序无法正常启动解决方案(亲测有效)
    『Flutter』开篇
    led学生台灯哪个品牌好?2022学生台灯品牌排行榜
  • 原文地址:https://blog.csdn.net/Cosmoshhhyyy/article/details/132744609