腾讯笔试题(2015)

在Java中,以下那些数据结构可以以常量的时间复杂度0(1)添加元素()

  • HashMap
  • ArrayList
  • TreeMap
  • LinkedList 

解析:  answer--A &   D 

      注意   ArrayList

HashMap是以key和value键值对形式存储信息的,集合元素无序且不用查找再进行添加,直接指定新的key和value就ok, 时间复杂度是O(1)
LinkedList是链接列表实现,是在链表的开头和结尾提供了插入删除等操作的,时间复杂度是O(1)
ArrayList同理,是大小可变的数组,可以直接在结尾处添加元素,但是不能保证O(1)时间内任意添加一个元素。且当ArrayList需要扩容的时候,性能消耗是更加大的,先得重新开辟空间,然后再进行元素的添加
TreeMap:内部实现是基于红黑树,插入操作都设计到树结构的调整. 

一面墙,单独工作时,A花18小时砌好,B花24小时,C花30小时,现A, B, C的顺序轮流砌,每人工作1小时换班,完工时,B总共干了多少小时?()

  • 9小时
  • 8小时
  • 7小时
  • 6小时48分

      解:     A 工作一个小时完成工程的1/18  ,b 完成 1/24  c  1/30    ---->gcd(18,24,30)= 60;   所以可以转为代数式为    X/18 + Y/24 + Z/30 =1 ;

                 即 20X/60 +  15Y/60  + 12Z/60 =  6     可以知道因为是轮流换班,所以当x=y=z=7时     20X/60 +  15Y/60  + 12Z/60 <  6    逐步再试代值即可求           得 B 大于  7.5  所以取值为   8 小时。  (简单的数学题,easy)

    

14. TCP报文首部信息中与关闭连接有关的是()

 

A. URG  B. ACK  成功  C. SYN 同步  D.FIN 释放

 

解析:D。URG(urgent)表示紧急传输;ACK表示传输确认,实际上关闭连接和建立连接、传输数据时一样也需要进行确认,所以个人感觉这题ACK可选也可不选;SYN表示同步;FIN(final还是finish?)用来释放连接;此外还有PSH(不要缓存立即push给应用层)和RST(复位reset,断开再重新建立连接)。

     

posted @ 2015-03-09 15:01  龚细军  阅读(1406)  评论(4编辑  收藏  举报