受邀参加会议的最大员工数
来源:dev.to
时间:2025-01-27 22:31:18 462浏览 收藏
哈喽!大家好,很高兴又见面了,我是golang学习网的一名作者,今天由我给大家带来一篇《受邀参加会议的最大员工数》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!
2127。最大的员工被邀请参加会议
>难度: hard
主题:深度优先搜索,图形,拓扑排序
>一家公司正在组织会议,并有n名员工名单,等待被邀请。他们已经安排了一张大圆桌会议,能够座位员工的任何数字。
员工的编号为0到n -1。每个员工都有一个> 的人,他们才会参加会议>,只有当他们才能坐在他们喜欢的人旁边的情况下桌子。员工的最喜欢的人是>不是他们自己。> 给定a
0-索引整数阵列,其中最喜欢的[i]表示ith> th 员工的最喜欢的人,返回>可以邀请参加会议的员工。
>>示例1:
>输入:
fairm = [2,2,1,2]
- >输出:
- 3 >说明:
- >上图显示了公司如何邀请员工0、1和2,并将其坐在圆桌会议上。
- 不能邀请所有员工邀请,因为员工2不能同时坐在员工0、1和3旁边。>
请注意,该公司还可以邀请员工1、2和3,并给他们所需的座位。
- >可以邀请参加会议的最大员工数量为3。
> - > >示例2:
>输入: - >可以邀请参加会议的最大员工数量为3。
> >输出:
3- >说明:
- 每个员工是至少一个其他员工的最喜欢的人,而公司邀请他们的唯一途径是他们邀请每位员工。
座位的安排将与示例1:
中给出的图相同。 >员工0将位于员工2和1之间 >员工1将位于员工0和2之间。 - >员工2将位于员工1和0之间。
- >可以邀请参加会议的最大员工数量为3。
- >示例3:
- >输入:
> - >输出:
>说明:
上面的图显示了公司将如何邀请员工0、1、3和4,并将其坐在圆桌会议上。
>员工2无法邀请,因为摄取了他们最喜欢的员工1旁边的两个景点。- 因此,公司将他们排除在会议之外。
- >
可以邀请参加会议的最大员工人数为4。
> - >约束:
- >
n == fale.length
- 2 < = n < = 10 5
- 0 < = fairm [i] < = n -1
- >最爱[i]!= i
>从给定的数组的喜爱中,创建一个图形,对于每个索引i,都有一个从喜欢的[i]到i的指向边缘。该图将是循环和无环边缘链的组合。现在,我们可以选择员工坐在桌子上的方式?
- >
- >我们可以选择员工的第一种方法是选择图表的周期。可以证明,在这种情况下,不在周期中的员工永远无法坐在桌子上(除非周期的长度为2)。 第二种方法是结合无环链。最多可以通过长度2的循环将两个链组合在一起,其中每个链在周期中的一个员工中结束。
- 解决方案:
- 该解决方案涉及分析由喜爱阵列形成的图表中的周期和链。
<?php /** * @param Integer[] $favorite * @return Integer */ function maximumInvitations($favorite) { ... ... ... /** * go to ./solution.php */ } // Example usage: $favorites1 = [2, 2, 1, 2]; $favorites2 = [1, 2, 0]; $favorites3 = [3, 0, 1, 4, 1]; echo maximumInvitations($favorites1) . "\n"; // Output: 3 echo maximumInvitations($favorites2) . "\n"; // Output: 3 echo maximumInvitations($favorites3) . "\n"; // Output: 4 ?>解释:
- 图表表示
- :
- 每个员工都指向他们的最爱,形成有向图。
>链条的拓扑排序
:
>没有传入边缘的员工(indegree = 0)进行处理以计算导致周期的链长。
- 循环检测
:
>访问员工以检测周期。一旦找到一个周期:- 对于长度2的循环,循环每个节点附着的链被合并。 对于更长的周期,考虑了整个周期的长度。
-
结果:
- 所有循环长度的最大值和从2个长度循环中合并链的长度的总和。
- 这种方法可确保效率的效率,其时间复杂性为
>o(n)
>- ,使其适用于最高
- >
- 10 5
- 的大型输入。 >
- 。
联系链接
- >
- 如果您发现此系列有帮助,请考虑在github上给出
reposority >在您喜欢的社交网络上分享帖子。您的支持对我来说意义重大!> 如果您想要这样的更多有用的内容,请随时关注我:>
github
理论要掌握,实操不能落!以上关于《受邀参加会议的最大员工数》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!
声明:本文转载于:dev.to 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
最新阅读
更多>
-
143 收藏
-
194 收藏
-
410 收藏
-
437 收藏
-
166 收藏
-
436 收藏
课程推荐
更多>
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习