首页 > 其他分享 >Leetcode1953. 你可以工作的最大周数

Leetcode1953. 你可以工作的最大周数

时间:2024-05-27 09:01:24浏览次数:28  
标签:milestones 最大 周数 long 任务 1953 Leetcode1953 mx

Every day a Leetcode

题目来源:1953. 你可以工作的最大周数

类似题目:621. 任务调度器

解法1:贪心

本质上来说,我们需要构造一个尽量长的,相邻元素不同的序列,且元素 x 的出现次数不能超过 milestones[x]。

设 milestones 的元素和为 s,这是序列长度的上界。设 mx=max⁡(milestones),我们可以把该任务的阶段任务每次间隔 1 位排列在序列中,其他的任务则安排在空位上,这样的构造方法能保证序列最长。

如果 mx 特别大,大到它比其它元素的个数之和加 1 还要大,即 mx > s - mx + 1,那么说明 mx 这个任务不能全部完成,它只能安排 s - mx + 1 个阶段任务,此时能完成的阶段任务数为 (s - mx) + (s - mx + 1) = 2 * (s - mx) + 1;否则,所有任务都能全部完成,能完成的阶段任务数为 s。

代码:

/*
 * @lc app=leetcode.cn id=1953 lang=cpp
 *
 * [1953] 你可以工作的最大周数
 */

// @lc code=start
class Solution
{
public:
    long long numberOfWeeks(vector<int> &milestones)
    {
        long long s = accumulate(milestones.begin(), milestones.end(), 0LL);
        long long mx = *max_element(milestones.begin(), milestones.end());
        return mx > s - mx + 1 ? 2 * (s - mx) + 1 : s;
    }
};
// @lc code=end

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(n),其中 n 是数组 milestones 的长度。

空间复杂度:O(1)。

标签:milestones,最大,周数,long,任务,1953,Leetcode1953,mx
From: https://blog.csdn.net/ProgramNovice/article/details/138944510

相关文章

  • 【信道容量估计】基于AWGN、香农、最大中断、零中断和最大的最佳功率分配的中断门限实
     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......
  • leetcode力扣 1004. 最大连续1的个数 III
    给定一个二进制数组nums和一个整数k,如果可以翻转最多k个0,则返回数组中连续1的最大个数。示例1:输入:nums=[1,1,1,0,0,0,1,1,1,1,0],k=2输出:6解释:[1,1,1,0,0,1,1,1,1,1,1],翻转两个0后,最长的子数组长度为6。示例2:输入:nums=[0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1......
  • MYSQL满足条件函数里放查询最大函数的方法
    1.MYSQL满足条件函数里放查询最大函数的方法在MySQL中,如果我们想要在一个条件函数(如CASE)内部使用聚合函数(如MAX)来获取某个字段的最大值,我们通常需要在外部查询或子查询中执行这个聚合操作,并将结果作为参数传递给条件函数。以下是一个具体的代码示例,假设我们有一个名为sales的表,......
  • 小猴编程周赛C++ | 环形最大子段和
    学习C++从娃娃抓起!记录下在学而思小猴编程学习过程中的题目,记录每一个瞬间。侵权即删,谢谢支持!附上汇总贴:小猴编程C++|汇总-CSDN博客【题目描述】给出一个长度为n的环形数组a1......
  • leetcode力扣 2024. 考试的最大困扰度
    一位老师正在出一场由n道判断题构成的考试,每道题的答案为true(用'T'表示)或者false(用'F'表示)。老师想增加学生对自己做出答案的不确定性,方法是最大化有连续相同结果的题数。(也就是连续出现true或者连续出现false)。给你一个字符串answerKey,其中answerKey[i]是第i......
  • P1853 投资的最大效益
    链接:https://www.luogu.com.cn/problem/P1853题目:总的思路就是完全背包模板加上空间优化完全背包参考:https://blog.csdn.net/qq_40802813/article/details/119609917空间优化见代码#define_CRT_SECURE_NO_WARNINGS#include<iostream>#include<vector>#include<algorith......
  • 代码随想录算法训练营第十六天 | 104.二叉树的最大深度、559.n叉树的最大深度、111.二
    104.二叉树的最大深度题目链接:https://leetcode.cn/problems/maximum-depth-of-binary-tree/文档讲解:https://programmercarl.com/0104.%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E6%9C%80%E5%A4%A7%E6%B7%B1%E5%BA%A6.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE......
  • C语言---最大公约数和最小公倍数的求法
    #include<stdio.h>//欧几里得算法求的最大公约数intgcd(inta,intb){//一定要确保a>bif(a<b){inttemp=a;a=b;b=temp;//作用是创建临时变量将a和b的数值置换}while(b!=0)//当b不等于0时,继续执行循环......
  • 实验21-正向最大匹配算法
    出现UnicodeDecodeError:'gbk'codeccan'tdecodebyte0x9finposition16:illegalmultibytesequence 修改为 即可实验结果: ......
  • springcloud和dubbo分别调用controller层和service层是两种微服务架构的最大区别?
    许多讨论微服务架构中springcloud和dubbo区别的文章中,主要强调dubbo只是springcloud的子集,只是服务治理工具,不是完整解决方案。但是看了一下两者,感觉完全无法兼容,理念完全不同啊。springboot开发的典型应用目录如下:分Controller、service接口、Serviceimpl实现、dao等层次。1、s......