百度笔试题整理

周六上午的百度,休息了一个周末。今天来整理一下。还没收到面试通知。【不管怎么样,最终还是拿到了百度offer。虽然经历了很多,调到深圳,又调回北京,但是还是感谢】

1、假设一个大小为100亿个数据的数组,该数组是从小到大排好序的,现在该数组分成若干段,每个段的数据长度小于20「也就是说:题目并没有说每段数据的size 相同,只是说每个段的 size < 20 而已」,然后将每段的数据进行乱序(即:段内数据乱序),形成一个新数组。请写一个算法,将所有数据从小到大进行排序,并说明时间复杂度。

题目就是这样子的。我当时写的方法是如果小段数据内部的最大元素和最小元素的差值提前知道不会超过100的话,【100>20*log20,因为20*log20是对数组排序的时间复杂度】那么把小段数据的大小减去最小元素,然后放到一个长度为100的数组中。然后把元素按100长数组的顺序取出来,再加上最小元素的大小,就是排序之后的位置。如果元素有重复,可以再开一个长100的数组记录元素出现的次数。

这个方法的好处是需要O(100)*2的时间复杂度。需要O(100)的空间复杂度。相比排序之下,这个复杂度好像有点高。

看到网上有一个其他人的解法:维护一个20的小根堆,每次从中拿出最小的元素,然后加入一个新元素。每次加入新元素的调整堆的时间复杂度为O(log20)。

上面网友的这个算法,是一个排序的思想,每个元素的调整不超过O(log20)。那么整体的时间复杂度为N*O(log20)。这个方法很好。

2、http协议是工作在应用层的协议。

数据链路层 ATM,stp,vtp,VLAN PPP
网络层 ,IPV6 IPX,OSPF,EIGRP RIP
传输层 ,UDP TCP
应用层 WINS HTTP ,FTP TELNET,TFTP,DNS

同时分辨一下arp协议。ARP报文是由以太网帧进行封装传输的。没有封装进IP包。所以arp协议是工作在数据链路层的。TCP/IP模型中,将ARP协议放在网络层,而OSI七层协议里刚将其看作数据链路层里的协议

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值