前两天刚接了一场 Citadel OA ,Hackerrank平台,两道coding题,时间限制75分钟。10分钟左右就写完了两道题,后面纯摸鱼检查+提交。感觉75分钟给得过于保守了,搞不定的同学也可以大胆问问OA/VO经验,整体难度偏简单。

Question 1(服务器升级时间最小化)
题目描述
有两台服务器,各自的升级所需时间分别为 t1 秒和 t2 秒。在每一秒,只有一台服务器会进行升级。两台服务器会在特定时间点接收请求(第一台在 req1 的倍数秒,第二台在 req2 的倍数秒),并且在接收请求的秒数必须暂停升级。
请计算完成两台服务器升级所需的最小总时间(单位:秒)。
注意:
- 任意时刻最多只有一台服务器在升级。
- 可能存在没有任何服务器在升级的空闲秒数。
示例:
req1 = 2,t1 = 3req2 = 3,t2 = 1- 第一台服务器在第 1、3、5 秒升级(均不是 2 的倍数),耗时 3 秒;第二台在第 2 秒升级(不是 3 的倍数),耗时 1 秒。
- 总时间为 5 秒。
解题思路
题意就是把两个服务器的升级时间分配到若干秒上,但是每台服务器升级都有间隔,且同一秒最多升级一台,那么很显然我们可以二分最终都升级完的时间,就是二分答案,就查当前 x 秒里面给两台服务器用的秒数是否都够,然后再看总共可用的秒是否能恰好覆盖 t1 和 t2。
Question 2(内存块 MEX 有效大小)
题目描述
有 n 个内存块,第 i 个块的大小为 memoryBlocks[i]。你可以执行最多一次操作:选择一个索引 x,将 memoryBlocks[x] 的大小加 1(前提是 memoryBlocks[x] < n-1)。
操作后,数组的MEX(最小未出现的非负整数) 被称为一个有效大小。请返回所有可能的有效大小,并按升序排列。
示例:
n = 3,memoryBlock = [0, 3, 4]- 不操作时,MEX 为 1;操作
x=0后,数组变为[1, 3, 4],MEX 为 0。 - 所有可能的有效大小为
[0, 1]。
解题思路
统计一下每个数字出现的次数,然后从左到右扫一遍,维护当前还能用多少个操作次数。如果当前数字的个数加上剩余操作数都凑不够这个数,那后面的数都别想了。最后看能凑出哪些MEX值,从小到大列出来就行。
关于Citadel等大厂OA
这次OA真的很友好,两道题加起来不到10分钟就写完调试通过了。感觉Citadel这次OA难度控制得比较低,或者运气好抽到了简单版本。有同样经历的同学欢迎交流~ 下一轮VO如果有的话再来更新。
另外,如果大家正在准备Citadel、Jane Street、Two Sigma、Hudson River Trading等顶级量化/高频公司的OA或笔试,需要靠谱的代写/包过服务,可以私信我。 Programhelp提供专业 OA代写服务 (HackerRank、牛客网、Codesignal等平台),支持远程控制无痕操作,确保所有测试用例100%通过,不通过不收费。服务覆盖多家大厂笔试,已帮助多名同学顺利通过OA。