码迷,mamicode.com
首页 > 其他好文 > 详细

2015年腾讯软开笔试

时间:2015-03-30 12:37:14      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:

题目:1亿个QQ号存在set和vector两个容器当中,请你剔除个位数为奇数的QQ号码。

问题分解:

问题一:QQ号用什么类型存储?

问题二:vector 最好不删除中间元素?

问题三:set是由红黑树实现的,插入,删除操作对效率的影响大吗?

 

问题一分析:

unsigned int 在32位机中最大存储数为2^32 - 1 = 4294967295,大概43亿,假设题目中的1亿号码都在0~4294967295这个范围内。

计算1亿个号码,以unsigned int存储,需要占用多大的内存空间:

10^8 * 4 byte = 381.469M,空间不大,不成什么问题!

问题二分析:

vector是动态数组,不适于频繁插入和删除,因此,不便于在原有的vector上做删除操作;

问题三分析:

set 的key和value都是同一个;

set不能修改原值,只能删除后再插入,所以迭代器都是const的;

set的插入、删除操作是O(logN)复杂度。

 

2015年腾讯软开笔试

标签:

原文地址:http://www.cnblogs.com/wiessharling/p/4377436.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!