首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
芥渺
西北工业大学 算法工程师
发布于陕西
关注
已关注
取消关注
@code5bug:
9.4 中兴通讯笔试面经 - 编程题 & 题解
考试平台: 海纳在线考试 考试时间: 2023-09-04 考试题型: 单选题10题(每题3分)+ 多选题5题(每题6分)+编程题2题(每题20分) T1 题目描述 在一个遥远的银河系中,存在一个强大的星际联盟。这个联盟由数十个星球组成,星球与星球之间的通讯依赖于穿梭于各星球之间的高科技飞船。在这个星际联盟中,由N个星球,分别编号为1到N。联盟首领需要向各个星球发送重要指令,而星球之间飞船的航行时间是确定的,例如从编号为1的星球到编号为3的星球,需要1小时来传递信息,我们可以将其记为(1,3,1)。进一步说,我们可以用(s,d,t)来表示从星球s到星球d所需要的时间t,并目将这些时间信息放入一个列表time中。注意,由于宇宙天体运动等因素,从星球A到星球B的时间并不一定等于从星球B到星球A的时间。 现在,联盟首领正从他所在的 K 星球给其他星球发送一条命令,我们希望计算出至少需要多少时间才能使所有的星球都收到这个命令? 如果有的星球因为各种原因无法收到这条命令则返回-1. N的范围在[1,100] 之间 K的范围在[1,N] 之间。 time 的长度在[1,6000]之间。 所有的 timel =(s,d,t) 都有1 <= s,d <= N且1<= t <= 100。 每个星球可同时派出多艘飞船前往其他星球 输入描述 第一行:N值,星球总数。K值,联盟首领当前所在的星球的编号,两个数用空格分隔; 第二行开始多行:每行3个值,表示星球之间的通信时间。 例如: 2 1 1,表示2号星球到1号星球的时间为1。 输出描述 至少需要多少小时才能使所有的星球都收到联盟首领的命令? 如果命令不能传递给全部星球,则返回-1. 样例 输入 4 22 1 12 3 13 4 1 输出 2 题解 BFS 输入和以往题目有所不同,以往题目输入都是已知(输入元素个数已知),这题没有限定输入元素个数(所以这里使用 while (scanner.hasNextInt()) )。 import java.util.*;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int N = scanner.nextInt(), K = scanner.nextInt(); Airship[] airships = new Airship[N + 1]; for (int i = 1; i <= N; i++) airships[i] = new Airship(i); while (scanner.hasNextInt()) { int s = scanner.nextInt(), d = scanner.nextInt(), t = scanner.nextInt(); airships[s].addNeighbor(airships[d], t); } boolean[] vis = new boolean[N + 1]; int maxTime = 0; // int[] {飞船编号, 时间} PriorityQueue<int[]> queue = new PriorityQueue<>(Comparator.comparingInt(a -> a[1])); queue.offer(new int[]{K, 0}); vis[K] = true; while (!queue.isEmpty()) { int[] poll = queue.poll(); Airship cur = airships[poll[0]]; int now = poll[1]; for (Map.Entry<Airship, Integer> entry : cur.neighbors.entrySet()) { Airship neighbor = entry.getKey();
点赞 24
评论 10
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
07-30 00:36
Université d’Auvergne-Clermont-Ferrand 1 C++
计算机技术学习方法建议(cpp c++)
前言希望看到的人,能够对他的学习、工作有帮助,同时也希望有能力的人可以一起来完善此文档,让它可以发挥出更大的价值。语言学习操作系统学习计算机网络学习项目学习实习经历学习数据库学习算法学习星球介绍 (cpp c++公认学习地)里面服务也不会变,四个坚守目前:1.每天都会看大家打卡内容,给出合理性建议。2.大家如果需要简历指导,心里迷茫需要疏导都可以进行预约周六一对一辅导。3.每周五晚上九点答疑聊天不会变。4.进去星球了,后续如果有什么其他活动,服务,不收费不收费(**************************)(还有经历时间考验的独家私密资料)
点赞
评论
收藏
分享
07-31 17:54
大连海事大学 网络安全
面试官这是啥意思?
不多说了,看图吧
MomonKa:
实际上是,机房机器有些高度,问问你身高,有没有女朋友是看你能不能猛猛加班
你最讨厌面试问你什么?
点赞
评论
收藏
分享
07-09 20:24
湖北师范大学 Java
27届投日常实习
打算再背一两周的八股就开始投一下实习,简历目前准备的是这样的,求各位牛友看看还有啥需要完善的地方没
程序员小白条:
找个实习没啥问题的,海投吧
点赞
评论
收藏
分享
07-13 12:18
华南师范大学 Unity3D客户端
气笑了
很难想象在当时考场上的人是怎么绷住的😂
Twilight_m...:
还是不够贴近现实,中关村那块60平房子200万怎么可能拿的下来,交个首付还差不多
点赞
评论
收藏
分享
07-30 00:08
湖北工业大学 C++
大二学生血泪教训:C++深浅拷贝详解 面试必问
作为C++初学者,当你开始使用指针和动态内存分配时,“深拷贝”和“浅拷贝”是必须跨越的一道坎。不理解它们,轻则程序崩溃,重则内存泄漏。让我带你彻底搞懂这两个概念的区别、应用场景以及如何正确实现它们。概述浅拷贝因为初始化或者赋值一个对象时,会把指针也复制过去从而导致析构函数重复delete,导致世界末日通过深拷贝用不同的内存空间,这样就不会重复delete掉两次了一、什么是拷贝在C++中,对象拷贝主要发生在两种场景:1.使用一个对象初始化另一个对象,说人话就是新建一个对象等于另一个对象Myclass obj2 = obj1 (这里调用了拷贝构造函数)2.将一个对象赋值给另一个已存在的对象,也就是...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
百度提前批,三面被推迟一周,喜提秋招第一凉
7791
2
...
虾皮秋招一面
3325
3
...
百度提前批 三面
2921
4
...
他拿大厂SSP Offer打牌是什么概念啊?25届双非之光
2773
5
...
小鹏offer
1620
6
...
被猿辅导挂了简历,但我想说...
1494
7
...
虾皮一面凉经
1392
8
...
上班一周,工资还没拿,先欠公司两千
1372
9
...
最强本科✌
1369
10
...
大学四年,我感觉我像个“孤勇者”
1323
创作者周榜
更多
正在热议
更多
#
简历上的经历如何包装
#
29681次浏览
822人参与
#
秋招被确诊为……
#
164210次浏览
754人参与
#
中兴秋招
#
205855次浏览
2296人参与
#
工作中哪个瞬间让你想离职
#
63763次浏览
569人参与
#
你最希望上岸的公司是?
#
135280次浏览
706人参与
#
和同事相处最忌讳的是__
#
24527次浏览
244人参与
#
25届网易互娱暑实进度
#
78446次浏览
702人参与
#
虾皮求职进展汇总
#
249513次浏览
1857人参与
#
投格力的你,拿到offer了吗?
#
86824次浏览
584人参与
#
2022毕业即失业取暖地
#
102722次浏览
662人参与
#
2022毕业生求职现身说法
#
89302次浏览
700人参与
#
秋招OC许愿
#
327834次浏览
2450人参与
#
你最近一次加班是什么时候?
#
71015次浏览
350人参与
#
26届的你,投了哪些公司?
#
45527次浏览
497人参与
#
你的秋招第一面感觉怎么样
#
76949次浏览
592人参与
#
柠檬微趣工作体验
#
6761次浏览
40人参与
#
你遇到最难的面试题目是_
#
16752次浏览
201人参与
#
我对___祛魅了
#
48706次浏览
441人参与
#
地平线求职进展汇总
#
52666次浏览
370人参与
#
研究所VS国企,该如何选
#
194865次浏览
1819人参与
#
如果校招重来我最想改变的是
#
271974次浏览
2853人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务