谈谈使用过的几款咖啡机

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
H1B/绿卡遥遥无期
又不想回国
来东南亚最大的互联网集团工作?
码农求职神器Triplebyte:
不用海投
内推多家公司面试
坐标湾区
Games Startup
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
查看: 1272|回复: 1
收起左侧

Vertica的 assignment

[复制链接] |试试Instant~ |关注本帖
我的人缘0
爱吃肉的羊 发表于 2015-2-20 04:16:42 | 显示全部楼层 |阅读模式
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】

2015(7-9月) 码农类General 硕士 全职@Vertica - 校园招聘会 - 校园招聘会  | Other |

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

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

x
题目是有两个很大的xml 需要分析,一个user, 一个post 其实就是相当于两个数据库的表,现在让我从这个xml里读取top 10发帖最多的user, 其实就是相当于join两个table 然后拿出top 10。 要求是尽量减少空间、时间复杂度,群里的大大有什么思路吗?

上一篇:Amazon SDE Intern
下一篇:Amazon oa, 19 due
我的人缘0
ourlord 发表于 2015-10-6 05:38:27 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
啊我也刚面过,当时我自己想的太复杂了,于是后来貌似没跑好吧,反正挂了。

交完第二天我自己想了一想觉得很简单的其实

需要一个这样的数据结构
struct Recorder
{int post; int answer;}
std::vector<Recorder>          (或者用map更好,我只是懒得用c++11,所以开了个够大的vector,想想世界上人口也才6b,你开个1b存3个int也就是几MB的事情)

然后跑xml的每一行,更新这个vector或者map就是了,角标是userid,post对应帖子数,answer是回答数

然后排序来了,用std::set就可以了,for一记之前的vector,然后这么操作. Waral 博客有更多文章,
Wrapper
{int userid; int count;}
重载operator<,让根据count来排序
std::set<Wrapper> posts, answers;
for (auto &v : vector)
{
     posts.insert(v);
     answers.insert(v);. 留学申请论坛-一亩三分地
     if (posts.size() > 10) posts.erase(posts.begin());
. visit 1point3acres for more.     if (answers.size() > 10) answers.erase(answers.begin());
}

最后再把这20个userid去小的xml里找一下用户名就可以了。
这样肯定跑的出,而且不用很多内存,那个vector真的没啥内存,用map就更少了。但其实这个数据结构有个前提是post_id是primary key,意思是不能有重复的。。。但给的数据其实可以发现这一点,我觉得最好还是说一下比较好。
.1point3acres网
如果还要optimize的话可以在读数据的时候mutltithread一下,但是数据容易跑花,我自己随便实现了一下发现不太可靠,后来也没有再去想这个问题....
回复 支持 反对

使用道具 举报

游客
请先登录

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2018-6-23 14:53

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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