• 【C语言刷LeetCode】1953. 你可以工作的最大周数(M)


    给你 n 个项目,编号从 0 到 n - 1 。同时给你一个整数数组 milestones ,其中每个 milestones[i] 表示第 i 个项目中的阶段任务数量。

    你可以按下面两个规则参与项目中的工作:

    每周,你将会完成 某一个 项目中的 恰好一个 阶段任务。你每周都 必须 工作。
    在 连续的 两周中,你 不能 参与并完成同一个项目中的两个阶段任务。
    一旦所有项目中的全部阶段任务都完成,或者仅剩余一个阶段任务都会导致你违反上面的规则,那么你将 停止工作 。注意,由于这些条件的限制,你可能无法完成所有阶段任务。

    返回在不违反上面规则的情况下你 最多 能工作多少周。

    示例 1:

    输入:milestones = [1,2,3]
    输出:6
    解释:一种可能的情形是:
    ​​​​- 第 1 周,你参与并完成项目 0 中的一个阶段任务。
    - 第 2 周,你参与并完成项目 2 中的一个阶段任务。
    - 第 3 周,你参与并完成项目 1 中的一个阶段任务。
    - 第 4 周,你参与并完成项目 2 中的一个阶段任务。
    - 第 5 周,你参与并完成项目 1 中的一个阶段任务。
    - 第 6 周,你参与并完成项目 2 中的一个阶段任务。
    总周数是 6 。
    示例 2:

    输入:milestones = [5,2,1]
    输出:7
    解释:一种可能的情形是:
    - 第 1 周,你参与并完成项目 0 中的一个阶段任务。
    - 第 2 周,你参与并完成项目 1 中的一个阶段任务。
    - 第 3 周,你参与并完成项目 0 中的一个阶段任务。
    - 第 4 周,你参与并完成项目 1 中的一个阶段任务。
    - 第 5 周,你参与并完成项目 0 中的一个阶段任务。
    - 第 6 周,你参与并完成项目 2 中的一个阶段任务。
    - 第 7 周,你参与并完成项目 0 中的一个阶段任务。
    总周数是 7 。
    注意,你不能在第 8 周参与完成项目 0 中的最后一个阶段任务,因为这会违反规则。
    因此,项目 0 中会有一个阶段任务维持未完成状态。
     

    提示:

    n == milestones.length
    1 <= n <= 105
    1 <= milestones[i] <= 109

    来源:力扣(LeetCode
    链接:https://leetcode.cn/problems/maximum-number-of-weeks-for-which-you-can-work
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    这道题感觉就是个脑筋急转弯
    翻译下题意就是,任务安排不能相连
    那么就是把最多的任务放在奇数位,其他的数放在偶数位或者未完的奇数位
    当最多的任务比总任务的一半还少的话,任务总能做完
    当最多的任务比总任务的一半还多的话,那么任务不能做完,能做多少天取决于其他任务的总和。

    1. int Cmp(const void *a, const void *b)
    2. {
    3. return *(int *)b - *(int *)a;
    4. }
    5. long long numberOfWeeks(int* milestones, int milestonesSize){
    6. int i;
    7. long long ret = 0;
    8. long long sum = 0;
    9. qsort(milestones, milestonesSize, sizeof(int), Cmp);
    10. for (i = 0; i < milestonesSize; i++) {
    11. sum += milestones[i];
    12. }
    13. if (milestones[0] <= sum / 2) {
    14. return sum;
    15. } else {
    16. ret = sum - milestones[0];
    17. ret = ret * 2 + 1;
    18. }
    19. return ret;
    20. }

  • 相关阅读:
    redis的数据类型的增删改查
    QT中软件cpu占用率很高,甚至达到了50% 62%左右
    【Java面试】70%的Java求职者都被问到过, Mysql中MyISAM和InnoDB引擎有什么区别?
    可观测性-Metrics-统计每个指标的基数
    PyCharm中环境变量与系统不相通问题
    【数学建模】离散模型(循环比赛的名次)
    7.9 - 访问控制实现方式 7.10 - 用户口令保护策略
    windows系统下修改nginx配置后reload重加载后不生效解决方案
    【uniapp】点击多选的一种写法
    linux基础64——abrtd总结
  • 原文地址:https://blog.csdn.net/jin615567975/article/details/126615625