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亿个数当中?