LeetCode 6071. 完成所有任务需要的最少轮数
文章目录
- 1. 题目
- 2. 解题
1. 题目
给你一个下标从 0 开始的整数数组 tasks ,其中 tasks[i]
表示任务的难度级别。
在每一轮中,你可以完成 2 个或者 3 个 相同难度级别 的任务。
返回完成所有任务需要的 最少 轮数,如果无法完成所有任务,返回 -1 。
示例 1:
输入:tasks = [2,2,3,3,2,4,4,4,4,4]
输出:4
解释:要想完成所有任务,一个可能的计划是:
- 第一轮,完成难度级别为 2 的 3 个任务。
- 第二轮,完成难度级别为 3 的 2 个任务。
- 第三轮,完成难度级别为 4 的 3 个任务。
- 第四轮,完成难度级别为 4 的 2 个任务。
可以证明,无法在少于 4 轮的情况下完成所有任务,所以答案为 4 。示例 2:
输入:tasks = [2,3,3]
输出:-1
解释:难度级别为 2 的任务只有 1 个,但每一轮执行中,只能选择完成 2 个或者 3 个相同难度级别的任务。因此,无法完成所有任务,答案为 -1 。提示:
1 <= tasks.length <= 10^5
1 <= tasks[i] <= 10^9
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-rounds-to-complete-all-tasks
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
- 计数不同难度的数字的个数
- 对每个数量进行考虑:1不能完成,其他的数字对 3 进行求余
- 余数是0,直接每次3个,余数是1,先用两个2,剩余的每次3个,余数是2,先用一个2,剩余的每次3个
from collections import Counter
class Solution:def minimumRounds(self, tasks: List[int]) -> int:d = dict(Counter(tasks))nums = d.values()if 1 in nums:return -1ans = 0for num in nums:if num%3 == 0:ans += num//3elif num%3 == 1:ans += 2+(num-4)//3elif num%3 == 2:ans += 1+(num-2)//3return ans
112 ms 30.8 MB Python3
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
LeetCode 6071. 完成所有任务需要的最少轮数相关推荐
- C++描述 LeetCode 5676. 生成交替二进制字符串的最少操作数
C++描述 LeetCode 5676. 生成交替二进制字符串的最少操作数 大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在C ...
- 【LeetCode力扣】5814. 新增的最少台阶数 (第250场周赛)蓝湖专场
[LeetCode力扣]5814. 新增的最少台阶数 题目 代码 题目 给你一个 严格递增 的整数数组rungs,用于表示梯子上每一台阶的 高度 .当前你正站在高度为 0 的地板上,并打算爬到最后一个 ...
- LeetCode 2208. 将数组和减半的最少操作次数(优先队列)
文章目录 1. 题目 2. 解题 1. 题目 给你一个正整数数组 nums .每一次操作中,你可以从 nums 中选择 任意 一个数并将它减小到 恰好 一半.(注意,在后续操作中你可以对减半过的数继续 ...
- LeetCode 1758. 生成交替二进制字符串的最少操作数(DP)
文章目录 1. 题目 2. 解题 1. 题目 给你一个仅由字符 '0' 和 '1' 组成的字符串 s . 一步操作中,你可以将任一 '0' 变成 '1' ,或者将 '1' 变成 '0' . 交替字符串 ...
- LeetCode 1553. 吃掉 N 个橘子的最少天数(BFS)
文章目录 1. 题目 2. 解题 1. 题目 厨房里总共有 n 个橘子,你决定每一天选择如下方式之一吃这些橘子: 吃掉一个橘子. 如果剩余橘子数 n 能被 2 整除,那么你可以吃掉 n/2 个橘子. ...
- LeetCode 1536. 排布二进制网格的最少交换次数
文章目录 1. 题目 2. 解题 1. 题目 给你一个 n x n 的二进制网格 grid,每一次操作中,你可以选择网格的 相邻两行 进行交换. 一个符合要求的网格需要满足主对角线以上的格子全部都是 ...
- LeetCode 1443. 收集树上所有苹果的最少时间(自底向上DFS)
1. 题目 给你一棵有 n 个节点的无向树,节点编号为 0 到 n-1 ,它们中有一些节点有苹果. 通过树上的一条边,需要花费 1 秒钟. 你从 节点 0 出发,请你返回最少需要多少秒,可以收集到所有 ...
- LeetCode 1284. 转化为全零矩阵的最少反转次数(BFS 矩阵状态编码解码)
1. 题目 给你一个 m x n 的二进制矩阵 mat. 每一步,你可以选择一个单元格并将它反转(反转表示 0 变 1 ,1 变 0 ).如果存在和它相邻的单元格,那么这些相邻的单元格也会被反转.(注 ...
- LeetCode 871. Minimum Number of Refueling Stops 最少加油次数
LeetCode 871. Minimum Number of Refueling Stops 本题是LeetCode 871题,最少加油次数. 题目描述 A car travels from a s ...
最新文章
- 从fig文件中读取数据
- 自下而上滚动公告栏(可悬停)
- shell连接工具_盘点下我用的顺手的那些工具
- Twitch 沈悦时:国内外互联网直播生态差异
- HBase学习笔记——概念及原理
- 3d打印光固化好还是热固化好_UV专利一览(71) —天啦噜!3D打印上太空!
- 多中心临床大数据平台建设及深度应用
- 原创 | 万万没想到,JVM内存结构的面试题可以问的这么难?
- ZZULIOJ 1100: 求组合数(函数专题)
- python字典实现原理_python学习笔记_第7天(字典底层原理+选择结构)
- python在线学习pdf_扣丁学堂Python在线学习之将pdf转成图片的方法
- startlogging中设置setstdout=false来禁用这个功能。_无线路由器的安全功能,你知道多少?...
- 上拉电阻与下拉电阻介绍
- 序列化之Java默认序列化技术(ObjectOutputStream与ObjectInputStream)
- 非全日制考研计算机教育,22考研之全日制与非全日制的区别
- matlab 二维矩形函数,rect矩形函数 matlab中怎样编写矩形函数
- OpenCms for MySql安装
- java ftps上传_java – 使用FTPS将文件从android传输到服务器
- android 多个 前台 挂机,安卓手机如何进行多开挂机?
- 我的大学十年 -- 林锐
热门文章
- CentOS7 安装或迁移 wordpress(完整迁移)
- python pip install指定国内源镜像
- linux检查swap配置,Linux环境下swap配置方法
- C# Socket 编程详解
- 嵌入式Linux系统的构成和启动总结
- 最小生成树和最短路径
- myeclipse连接mysql怎么调用_myeclipse连接mysql数据库详细步骤
- oc51--循环retain
- centos下mysql多实例安装3306、3307实例(2014-10-15)
- 像阿超那样,花20分钟写一个能自动生成小心四则运算题目的 “软件”,要求:除了整数以外,还要支持真分数的四则运算。 和同学们比较一下各自程序的功能,实现方法的异同,等等...