需要面试准备
实现 solution(values: list[list[float | None]], groups: list[list[str]]) -> list[list[float | None]]。两个参数都是形状为 (T, N) 的矩阵——T 个时间戳作为行,N 个标的作为列。values[t][i] 是时间戳 t 处标的 i 的原始因子暴露,groups[t][i] 是同一时间戳上该标的的分组标签(行业、板块、国家等中性化目标维度)。逐行做分组中性化:减去同分组均值,并对缺失值安全。