LeetCode-1953. 你可以工作的最大周数【贪心 数组】

LeetCode-1953. 你可以工作的最大周数【贪心 数组】

  • 题目描述:
  • 解题思路一:贪心,关键点是找到(工作最长时间的工作longest )与(剩余其他工作加起来的时间总和rest )的关系。
  • 解题思路二:证明
  • 解题思路三:简化

题目描述:

给你 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

解题思路一:贪心,关键点是找到(工作最长时间的工作longest )与(剩余其他工作加起来的时间总和rest )的关系。

规律是:

if longest > rest + 1:return rest * 2 + 1else:return longest + rest
class Solution:def numberOfWeeks(self, milestones: List[int]) -> int:longest = max(milestones)rest = sum(milestones) - longestif longest > rest + 1:return rest * 2 + 1else:return longest + rest

时间复杂度:O(n)
空间复杂度:O(1)

解题思路二:证明

在这里插入图片描述

class Solution:def numberOfWeeks(self, milestones: List[int]):# 耗时最长工作所需周数longest = max(milestones)# 其余工作共计所需周数rest = sum(milestones) - longestif longest > rest + 1:# 此时无法完成所耗时最长的工作return rest * 2 + 1else:# 此时可以完成所有工作return longest + rest

时间复杂度:O(n)
空间复杂度:O(1)

解题思路三:简化

class Solution:def numberOfWeeks(self, milestones: List[int]) -> int:s = sum(milestones)m = max(milestones)return (s - m) * 2 + 1 if m > s - m + 1 else s

时间复杂度:O(n)
空间复杂度:O(1)


创作不易,观众老爷们请留步… 动起可爱的小手,点个赞再走呗 (๑◕ܫ←๑)
欢迎大家关注笔者,你的关注是我持续更博的最大动力


原创文章,转载告知,盗版必究



在这里插入图片描述


在这里插入图片描述
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/706705.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PM入门必备| 怎么写产品分析报告?

​小陪老师&#xff0c;产品经理是做些什么的呢&#xff1f;我去面试应该准备些什么呢&#xff1f; A: 首先要分清产品经理的类型&#xff0c;产品的面试需要准备的一般有Axure原型&#xff0c;需求文档&#xff0c;产品分析报告等&#xff0c;有些甚至需要展示项目经验。 tea…

MySQL性能飞跃:揭秘高效数据库优化的黄金法则

MySQL数据库性能优化是一个涉及多个层面的复杂过程&#xff0c;需要根据具体的应用场景、数据结构和查询模式等因素来定制优化方案。以下是针对不同场景下MySQL数据库性能优化的详细指南。 建库建表阶段的优化 1、存储引擎的合理选择 在创建数据库时&#xff0c;选择合适的存…

慧天卓特:2023-2024年高温“炙烤”非洲,FYDI干旱指数监测分析

【本案例分析&#xff0c;展示了慧天卓特FYDI-2.0干旱监测产品的大范围持续精准监测能力】 研究背景 2023年&#xff0c;全球气候变化对非洲的影响尤为严重。尚未走出持续三年旱灾的非洲之角国家又遭洪灾重创&#xff0c;数十万人流离失所。尤其是下半年&#xff0c;洪水造成…

如何修改照片的dpi值?在线图片更改dpi快捷方法

不少小伙不知道如何去改变图片分辨率&#xff0c;因为能用的到分辨率dpi的地方也不多&#xff0c;但是当我们在求职、考公或者是打印照片的时候&#xff0c;就经常看到会要求图片分辨率为300dpi以上了&#xff0c;本文将分享一款图片处理工具&#xff0c;它能快速完成修改图片分…

软件工程期末复习(4)软件过程

软件过程 软件过程是为了获得高质量软件所需要完成的一系列任务的框架&#xff0c;它规定了完成各项任务的工作步骤。 ISO 9000对过程的定义: 使用资源将输入转化为输出的活动所构成的系统。 瀑布模型&#xff1a; 瀑布模型的特点&#xff1a; 阶段间具有顺序性和依赖性 必须…

聚观早报 | OPPO K12x开启预售;苹果iPad Air 6开售

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 5月16日消息 OPPO K12x开启预售 苹果iPad Air 6开售 moto X50 Ultra将发布 谷歌宣布为安卓引入新功能 谷歌Pixe…

基于51单片机的非接触式无线红外测温

基于51单片机的无线红外测温 &#xff08;程序&#xff0b;原理图&#xff0b;设计报告&#xff09; 功能介绍 具体功能&#xff1a; 1.采用红外温度传感器测温并用LCD1602显示&#xff1b; 2.按键为启动按键、保存按键、显示数据按键&#xff0c;可以实现对温度数值的控制…

英语学习笔记11——It this your shirt?

It this your shirt? 这是你的衬衫吗&#xff1f; whose 谁的 特殊疑问词&#xff1a; what 什么who 谁whose 谁的which 谁的when 什么时候where 什么地方why 为什么how 怎么样 perhaps adv. 大概 【注意拼写】 catch v. 抓住 口语&#xff1a;Catch! 接着&#xff01;v.…

创新指南 | 企业AI战略实施方案探讨(下):如何基于AI重构业务流程并落地实施

人工智能&#xff08;AI&#xff09;的浪潮已经席卷全球&#xff0c;成为推动现代企业发展的强大动力。AI技术不仅提升了企业的运营效率&#xff0c;还催生了新的商业模式和市场机会。本文将深入探讨AI的革新性应用案例&#xff0c;并提供一套企业落地AI的具体实施方案&#xf…

Encryption Everywhere DV TLS CA - G1

Encryption Everywhere DV TLS CA - G1属于DigiCertCA机构发布&#xff0c;分为单域名SSL证书和通配符SSL证书两种为主&#xff0c;常见的是单域名SSL证书&#xff0c;到期后就需要重新申请。 单域名类型可以保护一个全域名&#xff0c;比如&#xff1a;一个子域名或者一个主域…

GDPU Java 天码行空12

&#xff08;一&#xff09;实验目的 1、掌握JAVA中多线程的实现方法&#xff1b; 2、重点掌握多线程的同步与通信机制&#xff1b; 3、熟悉JAVA中有关多线程同步与通信的方法 &#xff1b; 4、能使用多线程机制解决实际应用中的线程同步与通信问题。 &#xff08;二&#xf…

STAR-Echo:一种使用时空分析和基于Transformer的影像组学模型预后慢性肾脏病患者 MACE 预后的新型生物标志物

文章目录 STAR-Echo: A Novel Biomarker for Prognosis of MACE in Chronic Kidney Disease Patients Using Spatiotemporal Analysis and Transformer-Based Radiomics Models摘要方法实验结果 STAR-Echo: A Novel Biomarker for Prognosis of MACE in Chronic Kidney Disease…