一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 842|回复: 5
收起左侧

twosigma onsite面经two timestamp 讨论

[复制链接] |试试Instant~ |关注本帖
chenting0615 发表于 2016-4-10 11:00:58 | 显示全部楼层 |阅读模式

2016(4-6月) 码农类 硕士 全职@TwoSigma - 网上海投 - Onsite |Other在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
这几天在刷twosigma的面经,被two timestamp的题有点搞晕了,题目是这样的: 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
给你两个independent queue,每个queue都存着timestamp,只能有getNext()来取queue里面的timestamp,每个timestamp只能被取一次,比较这两个queue里的timestamp,如果差值<1,print这两个timestamp。例如:
//Q1 0.2, 1.4, 3.0
//Q2 1.0 1.1, 3.5
//output: (0.2, 1.0), (1.4, 1.0), (0.2, 1.1), (1.4, 1.1), (3.0, 3.5)
不明白的几点:
1. q1和q2都可以当成start或者end吗?还有题目中说了每个timestamp只能被取一次,那么为什么output里面0.2, 1.0都出现了好多次呢
2. 这个为什么要用到多线程和lock呢,是因为data stream的queue在不停的读数据所以在不停的变化吗,就是说要读和取thread safe吗,还看到有大神说要用到buffer,就更不懂了,希望有大牛解释一下,感激不尽啊,同时也造福以后面试的同学



aifer 发表于 2016-4-18 06:28:38 | 显示全部楼层
1.应该不是,否则不会出现某一个值出现多次的情况。可以理解为这些值就是简单的timestamp

补充内容 (2016-4-18 06:30):
2. 看之前有人总结的经验,多线程应该是指用两个线程分别处理一个stream传递的数据的queue。不过我不是很明白为何这样做会提高了整体效率。我的理解是,如果两个线程,对各自queue处理的时候,锁与不锁没有啥区别。
回复 支持 反对

使用道具 举报

singledog2016 发表于 2016-6-26 06:35:31 | 显示全部楼层
aifer 发表于 2016-4-18 06:28
1.应该不是,否则不会出现某一个值出现多次的情况。可以理解为这些值就是简单的timestamp

.鐣欏璁哄潧-涓浜-涓夊垎鍦补充内容 (2016- ...

大神,这题有代码吗?我也没搞懂。求解释
回复 支持 反对

使用道具 举报

boerwa 发表于 2016-7-6 14:44:20 | 显示全部楼层
首先我猜这两个queue按timestamp 有序, 可能这就是两个交易所的market tick data(实时行情数据),所以回答你的问题:
回复 支持 反对

使用道具 举报

boerwa 发表于 2016-7-6 14:48:16 | 显示全部楼层
1. 只能取一次也就是类似tail = Q1.pop_front(), 但显然拿到tail 不能立即丢掉,因为在Q2里面有几个满足条件的tick不一定呢
回复 支持 反对

使用道具 举报

ivanml 发表于 2016-7-10 04:05:48 | 显示全部楼层
请问一下这题到底怎么解呢,面经看的都云里雾里的。。有人搞懂了吗?
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-10 01:13

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表