随笔分类 -  编程面试题

摘要:这是我面试A公司时碰到的算法题,题目大意是一本书缺了一页,然后书页顺序被打乱,问如何迅速找到缺失的那一页?思路:其实就是在乱序数组里面找缺失的一个数,有以下方法1、直接排序,然后遍历一次 时间复杂度O(NlogN),不需要额外空间2、用bitmap思想,开一个大数组,可以用bitset以节省空间,遍历一遍该数组,出现的数字置位为1,遍历完毕后,没有置位的那一位对应的数就是缺失的数字,时间复杂度O(N),但是需要O(N)的额外空间3、原地桶排序思想,遍历数组,如果脚标与值相等不做任何处理;否则交换该数到其值索引的那个位置,对于被占用位置的数字,采用同样的方法放到其值索引的位置,直到数组末尾,此时 阅读全文
posted @ 2012-03-17 23:16 yangleo 阅读(596) 评论(0) 推荐(0)
摘要:STLContianers容器精辟总结一、序列容器(Sequence containers)1、 Vector :一种序列容器,实现为动态数组,元素保存在连续的存储位置,支持迭代器和索引访问。与数组不同的是,可以自动分配存储空间,容易改变容器大小。当需要频繁从序列尾部增加或者删除数据时,可以表现出高效的性能。size记录了当前容器大小,capacity记录了当前已分配的最大空间。2、 List:一种序列容器,实现为双向链表。与其他容器如vector和deques相比,list在容器内部插入、删除元素操作中性能更好。主要缺点是不支持元素直接按索引访问,需要迭代遍历。3、 Deque:全称为dou 阅读全文
posted @ 2012-02-26 19:06 yangleo 阅读(279) 评论(0) 推荐(0)
摘要:看到关于字符串的面试题总结,第一题我就曾经遇到过- -摘录于下, 来源:http://rjwyr.blog.163.com/blog/static/112986400201153061911864/字符串操作#include <iostream>#include <sstream>#include <limits>#include <vector>#include <string>using namespace std;/*\1.翻转句子中的单词题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔 阅读全文
posted @ 2011-12-25 22:50 yangleo 阅读(1115) 评论(0) 推荐(0)