Citadel OA Hackerrank 复盘 | 10分钟秒AC,简单分享思路

55次閱讀
No Comments

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

Citadel OA Hackerrank 复盘 | 10分钟秒AC,简单分享思路

Question 1(服务器升级时间最小化)

题目描述

有两台服务器,各自的升级所需时间分别为 t1 秒和 t2 秒。在每一秒,只有一台服务器会进行升级。两台服务器会在特定时间点接收请求(第一台在 req1 的倍数秒,第二台在 req2 的倍数秒),并且在接收请求的秒数必须暂停升级。

请计算完成两台服务器升级所需的最小总时间(单位:秒)。

注意

  • 任意时刻最多只有一台服务器在升级。
  • 可能存在没有任何服务器在升级的空闲秒数。

示例

  • req1 = 2t1 = 3
  • req2 = 3t2 = 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 = 3memoryBlock = [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。

author avatar
Jory Wang Amazon资深软件开发工程师
Amazon 资深工程师,专注 基础设施核心系统研发,在系统可扩展性、可靠性及成本优化方面具备丰富实战经验。 目前聚焦 FAANG SDE 面试辅导,一年内助力 30+ 位候选人成功斩获 L5 / L6 Offer。
正文完
 0