当前位置: 首页 > news >正文

leetcode621. 任务调度器

给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表,用字母 A 到 Z 表示,以及一个冷却时间 n。每个周期或时间间隔允许完成一项任务。任务可以按任何顺序完成,但有一个限制:两个 相同种类 的任务之间必须有长度为 n 的冷却时间。

返回完成所有任务所需要的 最短时间间隔 。

示例 1:

输入:tasks = ["A","A","A","B","B","B"], n = 2

输出:8

解释:

在完成任务 A 之后,你必须等待两个间隔。对任务 B 来说也是一样。在第 3 个间隔,A 和 B 都不能完成,所以你需要待命。在第 4 个间隔,由于已经经过了 2 个间隔,你可以再次执行 A 任务。

示例 2:

输入:tasks = ["A","C","A","B","D","B"], n = 1

输出:6

解释:一种可能的序列是:A -> B -> C -> D -> A -> B。

由于冷却间隔为 1,你可以在完成另一个任务后重复执行这个任务。

示例 3:

输入:tasks = ["A","A","A","B","B","B"], n = 0

输出:6

解释:一种可能的序列为:A -> B -> idle -> idle -> A -> B -> idle -> idle -> A -> B。

只有两种任务类型,A 和 B,需要被 3 个间隔分割。这导致重复执行这些任务的间隔当中有两次待命状态。

提示:

  • 1 <= tasks.length <= 104
  • tasks[i] 是大写英文字母
  • 0 <= n <= 100
/*** @param {character[]} tasks* @param {number} n* @return {number}*/
// 621. 任务调度器 
// lodash.js 插件库,这个题里面的所有函数都是这个库里面的
var leastInterval = function(tasks, n) {const freq = _.countBy(tasks);// maxExec 是任务数最多的次数 maxExec// 方法返回一个给定对象自己的所有可枚举属性值的数组,值的顺序与使用for...in循环的顺序相同 ( 区别在于 for-in 循环枚举原型链中的属性 )。const maxExec = Math.max(...Object.values(freq));// maxCount是 最多任务数量的任务种类let maxCount = 0;Object.values(freq).forEach(v => {if (v === maxExec) {maxCount++;}})// n是同任务的等待时间/冷却时间return Math.max((maxExec - 1) * (n + 1) + maxCount, tasks.length);
};

补充说明:

const freq = _.countBy(tasks);分析这段代码

这段代码使用了Lodash库中的countBy函数,它用于对数组中的元素进行分组计数。

具体来说,_.countBy(tasks)会对tasks数组中的每个元素进行计数,并返回一个对象,其中对象的键是数组中的元素,值是该元素在数组中出现的次数。

举个例子,如果tasks数组如下:

const tasks = ['apple', 'banana', 'apple', 'orange', 'banana', 'banana'];

那么执行_.countBy(tasks)后的结果将会是:

{apple: 2,banana: 3,orange: 1
}

这个结果表示'apple'出现了2次,'banana'出现了3次,而'orange'出现了1次。

相关文章:

leetcode621. 任务调度器

给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表&#xff0c;用字母 A 到 Z 表示&#xff0c;以及一个冷却时间 n。每个周期或时间间隔允许完成一项任务。任务可以按任何顺序完成&#xff0c;但有一个限制&#xff1a;两个 相同种类 的任务之间必须有长度为 n 的冷却时…...

Spark 的 Skew Join 详解

Skew Join 是 Spark 中为了解决数据倾斜问题而设计的一种优化机制。数据倾斜是指在分布式计算中&#xff0c;由于某些 key 具有大量数据&#xff0c;而其他 key 数据较少&#xff0c;导致某些分区的数据量特别大&#xff0c;造成计算负载不均衡。数据倾斜会导致个别节点出现性能…...

讯飞星火编排创建智能体学习(一)最简单的智能体构建

目录 开篇 智能体的概念 编排创建智能体 创建第一个智能体 ​编辑 大模型节点 测试与调试 开篇 前段时间在华为全联接大会上看到讯飞星火企业级智能体平台的演示&#xff0c;对于拖放的可视化设计非常喜欢&#xff0c;刚开始以为是企业用户才有的&#xff0c;回来之后查…...

mac-m1安装nvm,docker,miniconda

1.安装minicondaMAC OS(M1)安装配置miniconda_mac-mini m1 conda-CSDN博客 2.安装nvm&#xff08;用第二个方法&#xff09;Mac电脑安装nvm(node包版本管理工具)-CSDN博客 3.安装docker dmg下载链接docker-toolbox-mac-docker-for-mac安装包下载_开源镜像站-阿里云 教程MacOS系…...

STM32F407之Flash

寄存器分类 一般寄存器分为只读存储器 (ROM) 随机存储器(RAM) 只读存储器 只读存储器也被称为ROM 在正常工作时只能读不能写。 只读存储器经历的阶段 ROM->PROM->EPROM->EEPROM ->Flash 优点&#xff1a;掉电不丢失&#xff0c;解构简单 缺点&#xff1a;只适…...

优化 Go 语言数据打包:性能基准测试与分析

场景&#xff1a;在局域网内&#xff0c;需要将多个机器网卡上抓到的数据包同步到一个机器上。 原有方案&#xff1a;tcpdump -w 写入文件&#xff0c;然后定时调用 rsync 进行同步。 改造方案&#xff1a;使用 Go 重写这个抓包逻辑及同步逻辑&#xff0c;直接将抓到的包通过网…...

【SQL】未订购的客户

目录 语法 需求 示例 分析 代码 语法 SELECT columns FROM table1 LEFT JOIN table2 ON table1.common_field table2.common_field; LEFT JOIN&#xff08;或称为左外连接&#xff09;是SQL中的一种连接类型&#xff0c;它用于从两个或多个表中基于连接条件返回左表…...

Qt(9.28)

widget.cpp #include "widget.h"Widget::Widget(QWidget *parent): QWidget(parent) {QPushButton *btn1 new QPushButton("登录",this);this->setFixedSize(640,480);btn1->resize(80,40);btn1->move(200,300);btn1->setIcon(QIcon("C:…...

javascript-冒泡排序

前言&#xff1a;好久没学习算法了&#xff0c;今天看了一个视频课&#xff0c;之前掌握很好的冒泡排序居然没写出来&#xff1f; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport"…...

第九届蓝桥杯嵌入式省赛程序设计题解析(基于HAL库)

一.题目分析 &#xff08;1&#xff09;.题目 &#xff08;2&#xff09;.题目分析 按键功能分析----存储位置的切换键 a. B1按下切换存储位置&#xff0c;切换后定时时间设定为当前位置存储的时间 b. B2短按切换时分秒高亮&#xff0c;设置完成后&#xff0c;长按把设置的时…...

MATLAB云计算集成:在云端扩展计算能力

摘要 MATLAB云计算集成是指将MATLAB的计算能力与云平台的弹性资源相结合&#xff0c;以实现高性能计算、数据处理和算法开发。本文详细介绍了MATLAB云计算的基本概念、优势、配置要点以及编程实践。 1. 云计算概述 云计算是一种通过互联网提供计算资源&#xff08;如服务器、…...

基于BeagleBone Black的网页LED控制功能(flask+gpiod)

目录 项目介绍硬件介绍项目设计开发环境功能实现控制LED外设构建Webserver 功能展示项目总结 &#x1f449; 【Funpack3-5】基于BeagleBone Black的网页LED控制功能 &#x1f449; Github: EmbeddedCamerata/BBB_led_flask_web_control 项目介绍 基于 BeagleBoard Black 开发板…...

【C语言】单片机map表详细解析

1、RO Size、RW Size、ROM Size分别是什么 首先将map文件翻到最下面&#xff0c;可以看到 1.1 RO Size&#xff1a;只读段 Code&#xff1a;程序的代码部分&#xff08;也就是 .text 段&#xff09;&#xff0c;它存放了程序的指令和可执行代码。 RO Data&#xff1a;只读…...

Java中的继承和实现

Java中的继承和实现在面向对象编程中扮演着不同的角色&#xff0c;它们之间的主要区别可以从以下几个方面进行阐述&#xff1a; 1. 定义和用途 继承&#xff08;Inheritance&#xff09;&#xff1a;继承是面向对象编程中的一个基本概念&#xff0c;它允许我们定义一个类&…...

uniapp云打包

ios打包 没有mac电脑,使用香蕉云编 先登录香蕉云编这个工具,新建csr文件——把csr文件下载到你电脑本地: 然后,登录苹果开发者中心 生成p12证书 1、点击+号创建证书 创建证书的时候一定要选择ios distribution app store and ad hoc类型的证书 2、上传刚才从本站生成的…...

端口安全技术原理与应用

目录 概述 端口安全原理 端口安全术语 二层安全地址配置 端口模式下配置 全局模式下配置 动态学习 二层数据包处理流程 三层安全地址配置 三层数据包处理流程 端口安全违例动作和安全地址老化时间 查看命令 端口安全的注意事项 小结 概述 园区网的接入安全关系着…...

数据集-目标检测系列-鲨鱼检测数据集 shark >> DataBall

数据集-目标检测系列-鲨鱼检测数据集 shark >> DataBall 数据集-目标检测系列-鲨鱼检测数据集 shark 数据量&#xff1a;6k 数据样例项目地址&#xff1a; gitcode: https://gitcode.com/DataBall/DataBall-detections-100s/overview github: https://github.com/Te…...

数字乡村解决方案-3

1. 国家大数据战略与数字乡村 中国第十三个五年规划纲要强调实施国家大数据战略&#xff0c;加快建设数字中国&#xff0c;推进数据资源整合和开放共享&#xff0c;保障数据安全&#xff0c;以大数据助力产业转型升级和提高社会治理的精准性与有效性。 2. 大数据与数字经济 …...

WPF文本框无法输入小数点

问题描述 在WPF项目中&#xff0c;文本框BInding双向绑定了数据Text“{UpdateSourceTriggerPropertyChanged}”&#xff0c;但手套数据是double类型&#xff0c;手动输入数据时&#xff0c;小数点输入不进去 解决办法&#xff1a; 在App.xaml.cs文件中添加语句&#xff1a; …...

R开头的后缀:RE

RE表示方位上的向后&#xff0c;一种时空上的折返&#xff0c;和表示否定意味的不。 68.re- 空间顺序 ①表示"向后&#xff0c;相反&#xff0c;不" RE表示正向抵抗的力的词语&#xff0c;和情绪的词语&#xff0c;用来表示一种极力的反抗和拒绝&#xff0c;包括…...

Windows外接显示器亮度控制终极指南:使用Twinkle Tray轻松解决Windows系统限制

Windows外接显示器亮度控制终极指南&#xff1a;使用Twinkle Tray轻松解决Windows系统限制 【免费下载链接】twinkle-tray Easily manage the brightness of your monitors in Windows from the system tray 项目地址: https://gitcode.com/gh_mirrors/tw/twinkle-tray …...

5分钟快速上手:LuckyLilliaBot QQ机器人完整部署指南

5分钟快速上手&#xff1a;LuckyLilliaBot QQ机器人完整部署指南 【免费下载链接】LuckyLilliaBot 支持 OneBot 11、Satori 和 Milky 协议 项目地址: https://gitcode.com/gh_mirrors/li/LuckyLilliaBot 你是否正在寻找一款简单易用、功能强大的QQ机器人框架&#xff1f…...

HsMod终极指南:50+功能全面解锁炉石传说模改插件

HsMod终极指南&#xff1a;50功能全面解锁炉石传说模改插件 【免费下载链接】HsMod Hearthstone Modification Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod HsMod是一款基于BepInEx框架开发的炉石传说模改插件&#xff0c;通过50多项实用…...

从零到一:手把手部署openGauss极简版并完成基础运维

1. 环境准备&#xff1a;从零搭建openGauss的基石 第一次接触openGauss时&#xff0c;我被它"极简版"的宣传吸引&#xff0c;但真正动手部署才发现&#xff0c;前期环境准备才是决定成败的关键。就像盖房子需要打地基&#xff0c;数据库安装前的系统配置直接影响后续…...

深度解析AKTools金融数据接口的HTTP API优化与数据一致性终极方案

深度解析AKTools金融数据接口的HTTP API优化与数据一致性终极方案 【免费下载链接】aktools AKTools is an elegant and simple HTTP API library for AKShare, built for AKSharers! 项目地址: https://gitcode.com/gh_mirrors/ak/aktools 在量化投资和金融数据分析领域…...

告别轮询!用libhv的WebSocketClient类5分钟搞定C++实时通信客户端

告别轮询&#xff01;用libhv的WebSocketClient类5分钟搞定C实时通信客户端 在物联网设备监控、多人在线游戏或金融行情推送等场景中&#xff0c;开发者常面临一个经典难题&#xff1a;如何实现毫秒级延迟的实时数据同步&#xff1f;传统HTTP轮询方案不仅浪费带宽&#xff0c;还…...

思源宋体CN:7款免费开源中文字体快速上手完整指南

思源宋体CN&#xff1a;7款免费开源中文字体快速上手完整指南 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 思源宋体CN&#xff08;Source Han Serif CN&#xff09;是由Adobe和Goog…...

终极免费Cookie导出工具:Get cookies.txt LOCALLY完整使用指南

终极免费Cookie导出工具&#xff1a;Get cookies.txt LOCALLY完整使用指南 【免费下载链接】Get-cookies.txt-LOCALLY Get cookies.txt, NEVER send information outside. 项目地址: https://gitcode.com/gh_mirrors/ge/Get-cookies.txt-LOCALLY 在当今数字化时代&#…...

C++内存管理:从malloc到new的进化之路

在学习相关内容之前&#xff0c;我们先来做一道题目&#xff1a; 分析&#xff1a; globalvar是一个全局变量&#xff0c;所以globalvar在静态区&#xff1b;static GlobalVar被static修饰&#xff0c;说明它是一个静态变量&#xff0c;那就在静态区&#xff1b;static Var在静…...

APDS9999三合一传感器实战:从硬件解析到代码应用

1. 项目概述&#xff1a;为什么选择APDS9999这款三合一传感器&#xff1f;在嵌入式项目里&#xff0c;传感器选型常常是个让人头疼的问题。你想做个能根据环境光自动调节亮度的智能灯&#xff0c;需要一个光照传感器&#xff1b;想做个检测物体靠近的感应装置&#xff0c;需要一…...