上个月底投了 JP 的 26 Summer Intern,简历刚过没多久就收到了 OA。整体节奏挺快,平台是 HackerRank,两道 coding,时间给得也不算紧。我这场大概 20 分钟左右就写完 + 自测通过,整体难度偏基础,偏思维清晰度,不太卡实现细节。下面简单复盘一下 JPMorgan Chase 2026 Summer Intern OA 题型和思路,给后面要做的同学一个参考。
第一题:区间取反操作,求最终数组状态
题目大意是:
给定一个初始数组,以及若干个区间操作,每次对区间内的元素做一次“取反”。问最后每个位置的值。
这题本质不是模拟,而是差分 + 前缀和。
核心思路:
- 每个区间
[l, r],在l位置 +1,在r+1位置 -1 - 最后做一遍前缀和,得到每个位置被操作的总次数
- 如果某个位置被操作了奇数次,就取反;偶数次就保持原样
时间复杂度是 O(n + m),比暴力每次翻区间快很多。
这题很典型,考的是你会不会用“差分数组”优化区间操作,而不是傻乎乎一段一段改。
第二题:同时运行的最大任务数(最少机器数)
题目给定一堆任务的 start time 和 end time,问同一时间最多有多少任务在跑,也就是最少需要多少机器。这题其实是经典扫描线(sweep line)模型。
思路:
- 每个任务开始时间记为 +1
- 每个任务结束时间的“下一刻”记为 -1
- 把所有时间点排序
- 从小到大扫描,累计当前运行任务数
- 记录过程中出现的最大值
这个最大值就是答案。本质是把区间问题转成“时间点事件统计”。写法不复杂,注意边界就行。
了解更多
如果最近在准备 2026 Summer Intern,不管是 JP 还是其他大厂,HackerRank / CodeSignal 的常见模型一定要刷熟。Programhelp助攻团队这边 Python / Java / C++ 都会写,主要看场景选语言。想获取 OA 题型趋势、或者想了解 面试辅助 ,也可以一起讨论。