我喜欢的一道软件工程面试题:计算中位数
我喜欢的一道软件工程面试题:计算中位数 2026-05-03 当我给候选人进行技术面试时,我有许多问题在我的准备库中。它们都有类似的特征。我不问谜题问题,我觉得它们的价值不高。相反,我问一些简单的问题,但有几个角度可以深入探讨更复杂的主题。进入简单的中位数问题。写一个函数,接受一个数字数组并返回中位数。至少:这将给你一个类似“Fizz Buzz”的信号,表明候选人实际上会编程。减少一组值是基本要求。首先:数字必须是排序好的。这个函数应该自己排序吗?还是调用者应该?如果数组是通过引用传递的,可以修改它吗?API设计如何影响性能?它有一个越界陷阱。请注意,我并不在乎任何人是否会陷入越界陷阱,我经常会跌入其中,但你通常会有机会观察某人调试一个小问题。这个问题有一个分支:偶数长度的数组与奇数长度的数组。它可能引发一些关于统计学的讨论,以及为什么在大多数情况下更喜欢中位数而不是均值。给候选人一个额外得分的机会,因为这个题目很容易测试。给候选人一个展示一些标准库知识的机会,涉及统计学。这里有一个带有讨论注释的Python实现。def median(numbers: list [ float ]) -> float : if not numbers: raise ValueError ('median called with empty list') numbers = sorted (numbers) length = len (numbers) mid = length // 2 if length % 2 == 0: return (numbers[mid - 1] + numbers[mid]) / 2.0 else : return numbers[mid]
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡