腾讯面试准备

这篇博客涵盖了腾讯面试中的一些常见技术问题,包括const变量的实现机制、购物优惠的实际折扣计算、TCP三次握手的过程、UDP数据包确认、论坛在线人数统计算法、大规模数据中位数查找、集合交集计算、缺失数字识别、毒药鉴别问题以及在大量数据中判断数字是否存在。这些问题涉及计算机网络、数据结构、算法等多个领域。
摘要由CSDN通过智能技术生成

1.const的含义及实现机制,比如:const int i,是怎么做到i只可读的?

答:const用来说明所定义的变量是只读的,这些在编译期间完成,编译器可能使用常数直接替换掉对此变量的引用

2.到商店里买200的商品返还100优惠券(可以在本商店代替现金)。请问实际上折扣是多少?

答:由于优惠券可以代替现金,所以可以使用200元优惠券买东西,然后还可以获得100元的优惠券,假设开始时花了x元,那么可以买到 x + x/2 + x/4 + …的东西。所以实际上折扣是50%.(当然,大部分时候很难一直兑换下去,所以50%是折扣的上限),如果使用优惠券买东西不能获得新的优惠券,那么总过花去了200元,可以买到200+100元的商品,所以实际折扣为 200/300 = 67%.

3.tcp三次握手的过程,accept发生在三次握手哪个阶段?

答:第一次握手:客户端发送syn包(syn=j)到服务器。第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个ASK包(ask=k)。第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1)。三次握手完成后,客户端和服务器就建立了tcp连接。这时可以调用accept函数获得此连接。

4.用UDP协议通讯时怎样得知目标机是否获得了数据包

用UDP协议通讯时怎样得知目标机是否获得了数据包?

5.统计论坛在线人数分布

求一个论坛的在线人数,假设有一个论坛,其注册ID有两亿个,每个ID从登陆到退出会向一个日志文件中记下登陆时间和退出时间,要求写一个算法统计一天中论坛的用户在线分布,取样粒度为秒。

答:http://blog.csdn.net/cywosp/article/details/6724567 学习了,方法很简单,利用数组就可以。

6.从10G个数中找到中数

在一个文件中有 10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。

答:http://blog.csdn.net/cywosp/article/details/6724568没太看懂,基础不行了,大牛人的博客还是要观摩的。
http://blog.csdn.net/xiucaijiang/article/details/6769543

7.两个整数集合A和B,求其交集

答:集合A,B交集,第一想法就是给两个排序,从头遍历找到相等的就存下来,第二个想法就是求集合范围,就是求A{min,max},B{min, max}如果A包含B,那么就把A的集合范围缩小成B,反之亦然,如此,最终会确定一个较小的范围得到交集

8.找出1到10w中没有出现的两个数字

有1到10w这10w个数,去除2个并打乱次序,如何找出那两个数?

答:x+y = n, x^2 + y^2 = m,按照这个思路能求出x,y缺的那个数,第二种方案,利用hash数组

9.需要多少只小白鼠才能在24小时内找到毒药

有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒?

答:10只,二分法

10.判断数字是否出现在40亿个数中?

给40亿个不重复的unsigned int的整数,没排过序的,然后再给几个数,如何快速判断这几个数是否在那40亿个数当中?

http://blog.csdn.net/cnnumen/article/details/5781333

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值