s*m
2 楼
两个inerface
void inject(int value)
double getAverage() //返回过去5分钟内的平均值
先不考虑并发,
用个Queue或者Dqueue保存数据。另开个线程一定时间删除数据
谁负责计算平均值呢? 考虑getAverage会被经常call.
inject吧。getAverage会快一点。
(getAverage和最后一次inject的时间不一样,计算出来的还就不是过去5分钟的了吧
。。。擦,刚开始还注意到了,被challenge了一下,把这个点给忘了)
计算平均的时候有办法避免每次遍历这个Queue吗?
考虑并发是,上面的方法还行得通吗?
void inject(int value)
double getAverage() //返回过去5分钟内的平均值
先不考虑并发,
用个Queue或者Dqueue保存数据。另开个线程一定时间删除数据
谁负责计算平均值呢? 考虑getAverage会被经常call.
inject吧。getAverage会快一点。
(getAverage和最后一次inject的时间不一样,计算出来的还就不是过去5分钟的了吧
。。。擦,刚开始还注意到了,被challenge了一下,把这个点给忘了)
计算平均的时候有办法避免每次遍历这个Queue吗?
考虑并发是,上面的方法还行得通吗?
l*2
3 楼
RT
t*s
4 楼
rt
在macy's里买的话能有什么优惠?
在macy's里买的话能有什么优惠?
y*r
5 楼
和大妈一起抢 itouch 4?
c*e
6 楼
为了避免每次计算平均数时遍历整个queue:
1. 保存当前5分钟所有数据的总和,或者总平均值
2. 每次新来一个数时,加到总和里,或者加到总平均值里
3. 每过去1秒(或者考官要求的时间精度),找到那些超过5分钟的数字,从总和里减掉
3号逻辑,做成一个独立的方法,然后在getAverage方法以及inject方法里都调用1次,
这样既保证getAverage是准确的,也保证如果一直没有人调用getAveragae,也不会塞
太多过时数据在队列里
还有啊,如果时间精度要求不高,比如1秒,而inject频率很高,比如每秒钟1000次,
那么根本就不用保存每一个数以及其时间戳,可以把1秒钟内的数字,全部累加,保存
成1个数,1个时间戳
因为只要输出平均值,本来就没有必要保存每个数,只要有单位时间内总数值保存好就
行了
1. 保存当前5分钟所有数据的总和,或者总平均值
2. 每次新来一个数时,加到总和里,或者加到总平均值里
3. 每过去1秒(或者考官要求的时间精度),找到那些超过5分钟的数字,从总和里减掉
3号逻辑,做成一个独立的方法,然后在getAverage方法以及inject方法里都调用1次,
这样既保证getAverage是准确的,也保证如果一直没有人调用getAveragae,也不会塞
太多过时数据在队列里
还有啊,如果时间精度要求不高,比如1秒,而inject频率很高,比如每秒钟1000次,
那么根本就不用保存每一个数以及其时间戳,可以把1秒钟内的数字,全部累加,保存
成1个数,1个时间戳
因为只要输出平均值,本来就没有必要保存每个数,只要有单位时间内总数值保存好就
行了
b*y
7 楼
日,又来了!
b*6
8 楼
touch给50块的卡,怎么样?
s*r
9 楼
是个什么东西啊?
黑糊糊的。
黑糊糊的。
m*o
11 楼
丽娟儿
C*i
12 楼
你要再发一次!
我也没啥脾气
我也没啥脾气
相关阅读
新手求教去痣头皮屑,头皮屑, 求助求建议:有效的生发产品大家来测测自己的音乐天赋吧 (转载)试用品比买的好?求问哪里有erno laszlo这个牌子卖,in store彭大将军今日最新出炉,请挑刺!!!!jms 推荐一个牌子的t-shirt把求推荐眉粉~~~~~~~~~~求帮忙找这件衣服的便宜的版本淘宝的衣服和美国的衣服Perm是用heat perm好吗?有哪位MM知道Irvine比较实惠的理发店呀?彭团长一袭白衣又杀到了南非,非洲人民表示鸭梨很大 (转载)express 不是40%off吗?有没mm买啊?大家在哪儿买ipad?这个婚纱卖多少钱?fashion版的妹妹,有没有人愿意跟本帅哥拍一个这样的video?哎,娘娘的新装,你们欣赏一下就好了 (转载)哪能买到便宜的BOTTEGA VENETA 钱包