【LeetCode】每日一题:1953.你可以工作的最大周数

给你 n 个项目,编号从 0 到 n - 1 。同时给你一个整数数组 milestones ,其中每个 milestones[i] 表示第 i 个项目中的阶段任务数量。
你可以按下面两个规则参与项目中的工作:
每周,你将会完成 某一个 项目中的 恰好一个 阶段任务。你每周都 必须 工作。
在 连续的 两周中,你 不能 参与并完成同一个项目中的两个阶段任务。
一旦所有项目中的全部阶段任务都完成,或者仅剩余一个阶段任务都会导致你违反上面的规则,那么你将 停止工作 。注意,由于这些条件的限制,你可能无法完成所有阶段任务。
返回在不违反上面规则的情况下你 最多 能工作多少周。

英文原题:
There are n projects numbered from 0 to n - 1. You are given an integer array milestones where each milestones[i] denotes the number of milestones the ith project has.
You can work on the projects following these two rules:
Every week, you will finish exactly one milestone of one project. You must work every week.
You cannot work on two milestones from the same project for two consecutive weeks.
Once all the milestones of all the projects are finished, or if the only milestones that you can work on will cause you to violate the above rules, you will stop working. Note that you may not be able to finish every project’s milestones due to these constraints.
Return the maximum number of weeks you would be able to work on the projects without violating the rules mentioned above.

解题思路

这题构造了半天充分性的证明,有梦回高中数竞的快乐了(虽然能力不够没做出来,但也可能是没有集中精神好好思考)
充分性的证明思路是用奇偶相隔来保证,这个应该很容易想到的然而我脑子抽了,真的转速远不如从前(

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

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

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

相关文章

用ffmpeg和EasyDARWIN实现推流

步骤: 1.配置easydarwin-ini里面的端口,打开easydarwin.exe 查看端口号是否成功,若不成功,则需要修改 2.在web网页打开 http://localhost:10008/ 看是否成功 3.用ffmpeg打开视频 ffmpeg.exe -re -i C:/22/Rec_20200903.mp4 -v…

1757. 可回收且低脂的产品

1757. 可回收且低脂的产品 题目链接:1757. 可回收且低脂的产品 代码如下: # Write your MySQL query statement below select product_id from Products where low_fatsY and recyclableY

.NET 4.8和.NET 8.0的区别和联系、以及查看本地计算机的.NET版本

文章目录 .NET 4.8和.NET 8.0的区别查看本地计算机的.NET版本 .NET 4.8和.NET 8.0的区别 .NET 8.0 和 .NET 4.8 之间的区别主要体现在它们的发展背景、目标平台、架构设计和功能特性上。下面是它们之间的一些主要区别: 发展背景: .NET 4.8 是.NET Fram…

C++(23): C++:STL中的时间库(std::chrono)

1. 简述 C STL库中的 chrono 是一个关于日期和时间的库,它提供了一套丰富、灵活且类型安全的API,用于测量和操作时间。chrono 库是C11标准的一部分,它使得我们可以进行高精度的时间测量,以及执行基于时间点的算术操作。 2. chron…

JVM中的垃圾回收器是如何工作的?

JVM(Java Virtual Machine)中的垃圾回收器负责自动管理内存,它通过识别并释放不再被程序使用的对象来回收堆内存。以下是垃圾回收器的基本工作原理: 标记-清除(Mark-Sweep)算法: 初始时&#x…

美港通正规炒股市场沪指收跌0.82% 证券板块调整

5月15日电 15日,A股三大指数集体下挫。上证指数跌0.82%,报3119.9点;深证成指跌0.88%,报9583.54点;创业板指跌0.9%,报1838.89点。沪深京三市成交额7651亿元,其中沪深两市7611亿元,较上日缩量635亿元。沪深两市超3800只个股下跌。 美港通证券以其专业的服务和较低的管理费用在市…

数字集成电路物理设计[陈春章]——知识总结与精炼02

第二章 物理设计建库与验证 2.1 集成电路工艺与版图 自行了解,关于闩锁效应可查阅小编之前的文章。 2.2 设计规则检查(DRC) 定义:晶圆代工厂对各自不同工艺参数制定出满足芯片制造良率的同一工艺层及不同工艺层之间几何尺寸的…

ROS学习笔记(15)小车巡墙驾驶

0.前提 前一章我讲解了拉氏变换和PID,这一章我来讲解一下小车巡墙驾驶的理论和部分代码。 1.前情回顾 1.拉氏变换 拉普拉斯变换是要将时域问题转换成频域问题来处理。 2.PID控制器 转向角: 误差牺牲: 3.具体参看上一篇文章 2.巡墙驾驶…

「AIGC算法」图搜索算法详解

本文主要介绍图搜索算法详解和简单实例 一、原理 图搜索算法是一组用于在图结构数据上执行搜索任务的算法。图由顶点(或称为节点)和边组成,广泛应用于表示各种关系,如网络、路径、社交关系等。图搜索算法可以分为两大类&#xff…

【半监督学习】半监督学习中的时间集合

在本文中,我们提出了一种在半监督环境下训练深度神经网络的简单而高效的方法,在这种环境下,只有一小部分训练数据是有标签的。我们引入了self-ensembling技术,即利用网络在不同历时,最重要的是在不同正则化和输入增强条…

充电桩战火重燃,特来电、星星充电上演“龙虎斗”

配图来自Canva可画 小米Su7真的太火了,上市40天锁单量超过10万供不应求,给新能源汽车行业带来了新的活力,也促进了充电桩行业的发展。 据中国汽车工业协会数据,4月份新能源汽车产销分别完成87万辆和85万辆,同比分别增…

[LeetCode #202] 快乐数

目录 题目描述: 解题思路: 解题代码: 题目描述: 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变…

地表最强ChatGPT爆了!我来告诉你,它都有什么用

OpenAI刚刚发布了全新的 "GPT-4o",它不仅可以通过语音、视觉和文本进行推理,还在速度和价格上有了巨大的突破。它的速度提高了2倍,价格却降低了50%,而且生成速率比GPT-4 Turbo高出5倍。最令人惊喜的是,它将对…

【prometheus】prometheus基于consul服务发现实现监控

目录 一、consul服务发现简介 1.1 consul简介 二、prometheus配置 2.1 node-exporter服务注册到consul 2.2 修改prometheus配置文件 【Prometheus】概念和工作原理介绍_prometheus工作原理-CSDN博客 【Prometheus】k8s集群部署node-exporter 【prometheus】k8s集群部署p…

Python全栈自动化测试-Python基础07--分支结构if

目录 前言 一、单项分支 二、双向分支 三、多向分支 四、巢状分支(嵌套分支) 五、if中的判断条件 1.条件--固定值 2.条件--运算符 总结 前言 在Python编程中,分支结构是一种至关重要的控制流机制,它允许程序根据特定条件…

[前端] 深度选择器deep使用介绍(笔记)

参考文献 深度选择器 深度选择器deep使用说明 在 Vue 中,为了实现组件内部样式对组件外部元素的穿透覆盖,可以使用 CSS 的 deep 选择器(也称为 >>> 或 /deep/)或 v-deep 指令。然而,这两个方法在 Vue 3 中…

C语言之旅:动态内存管理

目录 一.为什么要有动态内存分配 二.malloc和free 2.1 malloc 2.2 free 2. 3malloc和free的使用 三. calloc 四. raelloc 4.1 代码示例: 4.2 注意事项: 4.3 对动态开辟空间的越界访问 4.4 对非动态开辟内存使⽤free释放 4.5 使用free释放⼀块…

在Python中防止某些字段被Pickle序列化

在Python中,如果你想防止某些字段被pickle序列化,可以使用__reduce__()方法来自定义pickle行为。__reduce__()方法允许你返回一个元组,其中包含要在对象被pickle时调用的函数以及传递给该函数的参数。下面就是我遇到的问题以及最终解决方案。…

2D Chests Assets - Mega Pack

科幻/奇幻/经典主题的箱子和容器。AAA质量,高分辨率,VFX,源PSD文件。 这是一个带有手绘套装的大包装: -【梦幻之栗】 -【科幻钱包】 AAA质量。高分辨率。一切都已准备就绪,可供使用。包括PSD文件。 在1.1版本中添加了VFX并将项目更新为URP。请注意,新的VFX仅适用于URP/HD…

C# WinForm —— 20 RichTextBox 介绍

1. 简介 富文本框,拥有TextBox的所有功能,,但还有更多高级的文本输入和编辑功能,比如设置字体颜色、样式、段落、图片、超链接等 2. 常用属性 属性解释(Name)控件ID,在代码里引用的时候会用到,一般以 rtxt 开头Acce…