JPMorgan Chase OA 高頻題覆盤|高頻真題 + 思路拆解一篇搞定

最近 JPMorgan Chase OA 已經開始批次發放,平臺依舊是熟悉的 HackerRank。整體難度不高,但節奏要求很緊,屬於那種“會就是送分,不會就卡住”的典型篩選題。這次分享一套非常高頻的組合:滑動視窗 + 貪心(堆),基本很多人都會遇到類似版本。

JPMorgan Chase

題目 1:Highly Profitable Months

題目解析

題意:給定一個股票價格陣列 stockPrices 和引數 k,找出所有長度為 k 的連續子區間,滿足區間內股票價格嚴格遞增,統計這樣的區間數量。

  • 特殊情況:當 k=1 時,所有單個元素都滿足條件,直接返回陣列長度 n
  • 核心判斷:對於每個長度為 k 的視窗,檢查是否滿足 stockPrices[i] < stockPrices[i+1] < ... < stockPrices[i+k-1]

解題思路

  1. 先預處理陣列,生成一個 “遞增標記陣列”:inc[i] = 1 當且僅當 stockPrices[i] < stockPrices[i+1],否則為 0
  2. 長度為 k 的嚴格遞增區間,等價於在標記陣列中存在長度為 k-1 的連續 1
  3. 統計標記陣列中連續 k-11 的視窗數量,即為答案。

示例

stockPrices = [5, 3, 5, 7, 8]k=3

  • 標記陣列:[0, 1, 1, 1](因為 5>33<55<77<8
  • 尋找連續 21 的視窗:[1,1](位置 1-2)、[1,1](位置 2-3),共 2 個,與示例結果一致。

題目 2:Array Reduction 1

題目解析

題意:給定整數陣列 num,每次操作選擇兩個不同元素,刪除它們並將和加入陣列末尾,操作代價為兩數之和。求將陣列縮減到只剩 1 個元素時的最小總代價。

解題思路

這是經典的 哈夫曼編碼(Huffman Coding) 問題,等價於合併果子問題:

  • 每次合併兩個最小的元素,總代價最小。
  • 原理:較小的數會被多次計入總和,優先合併小數可以讓它們的和被更少次累加,從而總代價最小。
  • 實現:使用最小堆(小根堆),每次彈出兩個最小元素求和,將和重新入堆,並累加代價,直到堆中只剩一個元素。

示例

num = [4,6,8]

  • 堆初始化:[4,6,8]
  • 第一次合併:4+6=10,代價 10,堆變為 [8,10]
  • 第二次合併:8+10=18,代價 18,總代價 10+18=28,與示例最小結果一致。

關於 JPMorgan Chase OA 的小分享

這次 JPMorgan Chase OA 能比較順利地快速透過,說實話很大一部分原因是提前找了 ProgramHelp 幫忙做針對性準備。他們團隊配置確實挺硬核的:核心一共 7 個人,背景都很頂,有名校背景,另外還有在 Amazon、Google 和阿里這種一線大廠在職的工程師。

形式上是遠端協助,不會影響你正常操作,整體比較低調、安全。如果你最近也在準備類似:JPMorgan Chase,Goldman Sachs,或者 Amazon 這種 OA / 筆試,有人幫你把關,確實會穩很多。

author avatar
Jory Wang Amazon資深軟體開發工程師
Amazon 資深工程師,專注 基礎設施核心系統研發,在系統可擴充套件性、可靠性及成本最佳化方面具備豐富實戰經驗。 目前聚焦 FAANG SDE 面試輔導,一年內助力 30+ 位候選人成功斬獲 L5 / L6 Offer。
END
 0