1953. 你可以工作的最大周数
题目描述
给了n个项目,每个项目有不同的工作阶段。
限制是每周只能做一个阶段,相邻的两周不能看同一个项目
问最多能看多少周?
f1-贪心 |
基本分析
- 最好的分配方式?最长的分为一类,其余一类,用其余的来分隔最长的
- 会有哪些情况?s > rest + 1和 s <= rest + 1的情况
代码
class Solution: def numberOfWeeks(self, milestones: List[int]) -> int: s = sum(milestones) mx = max(milestones) rest = s - mx if mx <= rest + 1: return s else: return rest * 2 + 1
总结
- 不用排序,直接求和以及求最大就行了
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现