简单
技术面试0 次浏览小米智能家居设备中,有大量传感器数据需要处理,现在有一个传感器每秒会产生一个整数数据,要求设计一个算法,实时计算过去 60 秒内这些整数数据的平均值。
小米算法工程师
算法设计传感器数据处理
答题要点
推荐使用滑动窗口法来解答此题。首先明确答题框架,先阐述整体思路,再说明具体实现步骤。关键要点如下:一是使用一个队列存储过去 60 秒的数据,队列长度最大为 60;二是维护一个总和变量,用于记录当前队列中数据的总和;三是当有新数据到来时,若队列长度达到 60,移除队首元素并更新总和,再将新数据加入队列并更新总和;四是通过总和除以队列长度得到平均值。示例思路:先初始化一个空队列和总和为 0,当新数据到来,判断队列长度,若小于 60 直接加入队列并更新总和,若等于 60 则移除队首元素更新总和后再加入新数据更新总和,最后计算平均值。