cc
C++博客
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
38 随笔 :: 14 文章 :: 21 评论 :: 0 Trackbacks
<
2024年11月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(3)
给我留言
查看公开留言
查看私人留言
随笔档案
(38)
2013年3月 (1)
2011年5月 (1)
2011年2月 (3)
2010年3月 (2)
2010年2月 (1)
2010年1月 (4)
2009年12月 (2)
2009年11月 (5)
2009年10月 (4)
2009年7月 (1)
2009年6月 (2)
2009年5月 (2)
2009年4月 (1)
2008年10月 (1)
2008年9月 (1)
2008年8月 (1)
2008年7月 (3)
2007年12月 (2)
2007年7月 (1)
文章分类
(10)
编程相关(9)
(rss)
经典网评(1)
(rss)
文章档案
(14)
2008年7月 (1)
2006年12月 (13)
相册
cc
搜索
最新评论
1. re: 使用 .NET Remoting 实现并行计算 [转]
评论内容较长,点击标题查看
--EssaysService rewiew
2. re: 使用 .NET Remoting 实现并行计算 [转]
评论内容较长,点击标题查看
--custom essay writing services reviews
3. re: 使用 .NET Remoting 实现并行计算 [转]
评论内容较长,点击标题查看
--this link
4. re: C#中new和override区别
THX!
--programmer
5. re: 数据库水平分库框架设计
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
--aaaaaaaaaaaaaaaaaaaa
阅读排行榜
1. WINDOWS 逻辑坐标 设备坐标 屏幕坐标 客户区坐标(2488)
2. 空间中直线和三角面片求交(2419)
3. C# winform 实现(不规则)窗体或者控件的拖动(2340)
4. 保存Graphics对象到Bitmap对象 [转](2177)
5. 如何在Dll中导出STL类(1914)
评论排行榜
1. 数据库水平分库框架设计(2)
2. C++中extern “C”含义深层探索(1)
3. C#中new和override区别 (1)
4. CString和string的互相转换 (1)
5. 如何在Dll中导出STL类(1)
腾讯最新面试题,算法高手请进
1,两个整数集合A,B,求其交集,要求写出代码;
2,求一个论坛的在线人数,假设有一个论坛,其注册ID有两忆个,每个ID从登陆到退出会向一个日志文件中记下登陆时间和退出时间,要求写一个算法统计一天中论坛的用户在线分布,取样粒度为秒.
posted on 2006-12-17 15:31
醒目西西
阅读(4826)
评论(7)
编辑
收藏
引用
所属分类:
编程相关
评论
#
re: 腾讯最新面试题,算法高手请进
2006-12-17 15:32
醒目西西
对于第二个题目写了个awk程序
~>cat luntan
#!/usr/bin/awk
{
a[$1]++;
a[$2 +1]--;
}
END{
s=0;
for(;i<=24*3600;i++)
{
s += a[i];
print "at second "i " total ID = " s;
}
}
测试的话可以手动或用脚本生成日志文件
~>awk -f luntan logfile
or
~>echo 2 20 |awk -f luntan
回复
更多评论
#
re: 腾讯最新面试题,算法高手请进
2006-12-17 15:32
醒目西西
我表达的不太清晰,一天有24*3600秒
每个ID在日志中的数据格式如下:12 200 即该用户在今天的第12秒到200秒在线
日志文件中大概有2亿个这种记录,问题是求在一天中的第N 秒的在先人数
回复
更多评论
#
re: 腾讯最新面试题,算法高手请进
2006-12-17 15:32
醒目西西
对于求交集的问题,我的算法是:
假设
A 元素个数为 NA
B 元素个数为 NB
NA > NB
对集合B快速排序,然后遍历集合A的元素在集合B中用2分查找
复杂度:NB*log(NB) + NA*log(NB)
如果两个都排序,光排序的时间就大于这个了
回复
更多评论
#
re: 腾讯最新面试题,算法高手请进
2006-12-17 15:32
醒目西西
第二题的方法
int delta[86400]; //定义每秒钟人数的变化数
memset(delta, 0, sizeof(delta)); //初始化
//打开文件
while(!feof(....)){
int online_tm, int offline_tm; //
//读入上线时间和下限时间
delta[online_tm]++;
delta[offline_tm]--;
}
int result[86400];
int begin_total; //0:00的在线数,需要初始化
int totla = begin_total;
for(int i = 0; i < 86400; i++){
result[i] = total;
total += delta[i];
}
//到这儿result 就是你要的
回复
更多评论
#
re: 腾讯最新面试题,算法高手请进
2006-12-17 15:32
醒目西西
第一题的方法,这不是一个好办法,无非是一个解决办法而已
std::list<int> unite(const std::list<int>& A, const std::list<int>& B)
{
std::map<int, bool> temp;
for(std::list<int>::const_iterator iter = A.begin(); iter != A.end(); iter ++){
if(temp.find(*iter) == temp.end()) temp[*iter] = true;
}
for(std::list<int>::const_iterator iter = B.begin(); iter != B.end(); iter ++){
if(temp.find(*iter) == temp.end()) temp[*iter] = true;
}
std::list<int> ret;
for(std::map<int, bool>::const_iterator iter = temp.begin(); iter != temp.end(); iter++){
ret.push_back(iter->first);
}
return ret;
}
回复
更多评论
#
re: 腾讯最新面试题,算法高手请进
2006-12-18 17:43
ZiDing
A+B快排,然后遍历
回复
更多评论
#
re: 腾讯最新面试题,算法高手请进
2010-01-11 11:36
LiWang1112358
1.hash不行吗
回复
更多评论
刷新评论列表
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
C++基本类型对象化的一个方案
[转]delegate 与 多线程
去腾讯时遇到的一个面试题
腾讯最新面试题,算法高手请进
一道腾讯的面试题
c#多线程教学(4):线程池和异步编程
c#.net多线程编程教学(2):Thread类
使用 .NET Remoting 实现并行计算 [转]
[C#学习]在多线程中如何调用Winform
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
Powered by:
C++博客
Copyright © 醒目西西