上個月底投了 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 題型趨勢、或者想了解 面試輔助 ,也可以一起討論。