焦点关键词实战指南配图:核心步骤与效果对比

Range take-home 面经 2026:90分钟 TypeScript 笔试全解与高分策略

💼 面试代面 / OA辅助 / VO辅助

✅ 北美科技大厂面试 · 一对一真人代面

微信: leetcode-king | Telegram: @ayinterview

📚 更多面试资源:

关于我们 – 代面服务介绍

Blog – 更多面试攻略

引言

Range take-home 面经 2026 是近期很典型的题型。
这是我们学员贡献的最新面经。
因此,这份复盘以实战为主。
并且会明确 2026年最新 的考察口径。

如果你正准备 Range take-home 面经 2026,这篇会很省时间。
此外,文章会覆盖代码修复与测试设计。
也会讲清 IRR 数值求解的稳定写法。
最后给你可复用的答题模板。

2026 面试流程深度复盘:Range take-home 面经 2026

这轮题目通常给你约 90 分钟。
因此,前 10 分钟先跑测试并定位红灯。
重点先看

test/holdings.test.ts
先复现,再锁定最小改动面。

10 到 35 分钟要修基础方法。
具体来说,要先稳住 getCurrentHoldings()
与此同时,校验零仓位过滤。
再确认键值映射是否一致。

35 到 65 分钟进入新功能。
但是,先写 hasWashSale(symbol, days=30) 的规则。
你要抓住亏损卖出与时间窗口。
并且处理边界日与同日交易。

65 到 85 分钟处理 moneyWeightedReturn
换句话说,要先建现金流再求 IRR。
此外,起始和期末持仓估值必须并入。
无有效现金流时要返回 0.0

最后 5 到 10 分钟补单测与文档。
因此,test/newFeature.test.ts 建议至少 2 例。
一例正向,一例反向。
并且更新 CHANGELOG.md 保证可追溯。

核心题目解析

在 Range take-home 面经 2026 中,主线是“时序正确”。
因此,交易必须先排序。
否则平均成本会漂移。
后续 Wash Sale 与 IRR 都会错。

先看持仓与成本。
具体来说,getCurrentHoldings() 是买加卖减。
getCostBasis() 用平均成本法。
getUnrealizedPnl() 复用成本结果更稳。

再看 Wash Sale。
此外,判定分两步。
第一步是亏损卖出。
第二步是 ±days 内同标的买入。

亏损卖出的核心很明确。
但是,要用“卖出时点平均成本”比较。
sell price < avg cost at sale
这要求你按历史交易逐步回放。

最后看 IRR。
因此,买入记负流,卖出记正流。
起始持仓估值记负,期末估值记正。
数值法优先二分,收敛更稳。

from dataclasses import dataclass from datetime import datetime from typing import List, Tuple @dataclass class Trade: symbol: str side: str # BUY or SELL qty: float price: float ts: datetime def has_wash_sale(trades: List[Trade], symbol: str, days: int = 30) -> bool: # 先排序,保证成本与时序一致 rows = sorted([t for t in trades if t.symbol == symbol], key=lambda x: x.ts) buys = [t for t in rows if t.side == "BUY"] qty, avg_cost = 0.0, 0.0 for t in rows: if t.side == "BUY": total = avg_cost * qty + t.price * t.qty qty += t.qty avg_cost = total / qty continue if qty <= 0: continue is_loss_sale = t.price < avg_cost # 亏损卖出 if is_loss_sale: for b in buys: if abs((b.ts.date() - t.ts.date()).days) <= days: return True qty -= t.qty if qty <= 0: qty, avg_cost = 0.0, 0.0 return False def money_weighted_return( trades: List[Trade], start_date: datetime, end_date: datetime, start_value: float, end_value: float ) -> float: flows: List[Tuple[datetime, float]] = [ (start_date, -start_value), (end_date, end_value), ] for t in trades: if start_date <= t.ts <= end_date: amt = -t.price * t.qty if t.side == "BUY" else t.price * t.qty flows.append((t.ts, amt)) if not any(c > 0 for _, c in flows) or not any(c < 0 for _, c in flows): return 0.0 def npv(r: float) -> float: return sum(c / ((1 + r) ** ((d - start_date).days / 365.0)) for d, c in flows) lo, hi = -0.9999, 10.0 if npv(lo) * npv(hi) > 0: return 0.0 # 二分法鲁棒,适合面试限时场景 for _ in range(120): mid = (lo + hi) / 2 val = npv(mid) if abs(val) < 1e-7: return mid if npv(lo) * val <= 0: hi = mid else: lo = mid return (lo + hi) / 2

建议新增单测如下。
因此,覆盖正反两面最关键。

loss sell + 30天内买回 -> true
仅单向现金流 -> IRR 为 0.0

系统流程图(Mermaid)

流程图

专家备考策略与高频考点:Range take-home 面经 2026

准备 Range take-home 面经 2026 时,先练“读测修复”。
因此,先从失败断言反推业务规则。
此外,再补最小测试锁回归。
这比盲改源码更稳。

高频核心考点如下。
– 因此,先看交易时序与排序稳定性。
– 此外,检查平均成本是否逐笔更新。
– 但是,卖出后仓位归零要重置成本。
– 与此同时,Wash Sale 要做同标的过滤。
– 具体来说,IRR 要处理无根与不收敛。
– 总而言之,文档更新要可审计可追溯。

Range take-home 面经 2026 的 BQ 也会卡人。
换句话说,你要把技术动作讲成业务价值。
STAR 可以直接这样说。
并且每段控制在 20 到 40 秒。

  1. S:线上收益统计偶发偏差,且影响报表。
  2. T:在截止前修复计算,并补测试防回归。
  3. A:先重放交易,再修成本与 IRR 求解器。
  4. R:测试全绿,结果与对账一致,后续零事故。

🎯 面试代面 / OA辅助 — 前大厂工程师团队帮你上岸

正在为技术面试发愁?我们的北美大厂工程师团队提供专业辅导和辅助服务:

  • OA代做 — HackerRank / CodeSignal / LeetCode 等全平台覆盖,保证通过
  • 视频代面 — Google / Meta / Amazon 等主流平台,真实面试官在线
  • 模拟面试 — 1对1真实场景还原,详细反馈与改进建议
  • 简历优化 — 北美大厂HR背景,帮你打造高通过率简历

📱 微信: leetcode-king(添加请备注”面试”,回复更快)

💬 Telegram: @ayinterview(24小时在线)

⚡ 紧急面试可加急,30分钟内安排工程师对接

🚀 需要面试辅导?立即联系我们

✅ 前大厂工程师团队 · 一对一辅导 · 真实案例 · 保密协议

微信: leetcode-king | Telegram: @ayinterview

💼 北美科技大厂面试 · 面试代面 · OA辅助 · VO辅助