Aquatic QR Summer Intern 2026 OA 复盘:45 分钟滑动窗口题高分写法 + One-Way Interview 过关模板(含 Python)

来源于 2025-09-22 匿名面经。本文按真实筛选标准做工程化拆解,面向中国开发者可直接落地。

目录

1. 面经关键信息

  1. 投递后当天收到 OA,7 天有效期。
  2. OA 仅 1 道 coding,45 分钟限时。
  3. 题目要求实现类:按天气站实时维护最近 N 条温度数据的滑动统计量。
  4. 提交后下一个工作日收到 one-way interview(录制行为问题视频)。

2. 题目本质与评分点

  1. 核心不是算法炫技,而是稳定的数据结构和边界处理。
  2. 推荐统计项:countavgminmax
  3. 关键边界:N<=0、新站点首次写入、窗口淘汰最旧值、浮点一致性。 data-preserve-html-node="true"
  4. 目标复杂度:update 均摊 O(1)get_statsO(1)

3. Python 可提交模板

from collections import defaultdict, deque
from typing import Dict, Optional


class _StationWindow:
    def __init__(self, n: int) -> None:
        self.n = n
        self.q = deque()      # (idx, temp)
        self.min_q = deque()  # monotonic increasing
        self.max_q = deque()  # monotonic decreasing
        self.total = 0.0
        self.idx = 0

    def push(self, temp: float) -> None:
        i = self.idx
        self.idx += 1
        self.q.append((i, temp))
        self.total += temp

        while self.min_q and self.min_q[-1][1] > temp:
            self.min_q.pop()
        self.min_q.append((i, temp))

        while self.max_q and self.max_q[-1][1] < temp:
            self.max_q.pop()
        self.max_q.append((i, temp))

        if len(self.q) > self.n:
            old_i, old_t = self.q.popleft()
            self.total -= old_t
            if self.min_q and self.min_q[0][0] == old_i:
                self.min_q.popleft()
            if self.max_q and self.max_q[0][0] == old_i:
                self.max_q.popleft()

    def stats(self) -> Optional[Dict[str, float]]:
        if not self.q:
            return None
        count = len(self.q)
        return {
            "count": count,
            "avg": self.total / count,
            "min": self.min_q[0][1],
            "max": self.max_q[0][1],
        }


class WeatherRollingStats:
    def __init__(self, n: int) -> None:
        if n <= 0:
            raise ValueError("n must be > 0")
        self.n = n
        self.windows = defaultdict(lambda: _StationWindow(self.n))

    def update(self, station_name: str, temperature: float) -> Dict[str, float]:
        window = self.windows[station_name]
        window.push(float(temperature))
        return window.stats()

    def get_stats(self, station_name: str) -> Optional[Dict[str, float]]:
        window = self.windows.get(station_name)
        return window.stats() if window else None

4. 45 分钟作答节奏

  1. 第 0-5 分钟:确认输入输出,先写类接口。
  2. 第 6-25 分钟:完成 update 和窗口淘汰逻辑。
  3. 第 26-35 分钟:补 get_stats 与非法参数处理。
  4. 第 36-45 分钟:手测 3 组用例,重点测跨站点与窗口溢出。

5. One-Way Interview 回答框架

  1. STAR-L:Situation、Task、Action、Result、Learning。
  2. 重点准备三题:Why this role最难问题如何拆解团队分歧如何推进
  3. 每题 60-90 秒,结果尽量量化,例如“错误率降到 1% 以下”。

6. 2026 上岸案例(我们服务)

2026 年 2 月,Z 同学(双非、非 CS 背景)参加我们的“QR 冲刺计划”:

  1. 第 1 天:完成 OA 题型拆解与滑动窗口模板训练。
  2. 第 3 天:进行 2 轮 45 分钟限时模拟,修正边界漏判。
  3. 第 5 天:打磨 one-way interview,统一 STAR-L 叙事。
  4. 第 12 天:通过 Aquatic QR Summer Intern 2026 关键筛选环节并进入后续面试。
    复盘结论:真正决定通过率的不是刷题数量,而是“可复用模板 + 可量化表达”。

7. CTA:预约 1v1 诊断

你将获得:

  1. 基于你背景的 OA 高概率题型清单。
  2. 45 分钟 coding 的个人节奏修正方案。
  3. one-way interview 中英文高分回答脚本。

8. 面试救急

今晚或明天就要面试?可预约“面试救急 2 小时快修”:

  1. 30 分钟岗位画像与追问清单。
  2. 60 分钟高压模拟面试。
  3. 30 分钟逐题纠错与复述模板。
  4. 24 小时内交付个性化答题提纲。
    立即抢位:https://cal.com/interview-lab/emergency
Previous
Previous

Akuna Capital C++ SDE 2026NG OA 复盘:80 分钟 3 题如何稳过?(含可直接套用的解题模板)

Next
Next

Applied Intuition 工程经理 Onsite 复盘:长期决策思维、团队管理与系统设计全拆解(附 2026 上岸案例)