腾讯笔试题(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,断开再重新建立连接)。
编程是一种快乐,享受代码带给我的乐趣!!!