笔试面试精选
文章平均质量分 69
dpkirin
这个作者很懒,什么都没留下…
展开
-
数组表示数的下一个比它大的最小的置换
Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers. If such arrangement is not possible, it must rearrange it as the lowest possibl原创 2013-10-06 15:49:10 · 1572 阅读 · 2 评论 -
2014年创新工场校园招聘笔试题及答案
未经允许,此文禁止转载,谢谢合作~~原创 2013-09-20 14:54:40 · 2840 阅读 · 1 评论 -
面试常考手写代码之--二叉树非递归遍历
struct BTNode_s{ int value; BTNode_s* pLeft; BTNode_s* pRight;}BTNode; //非递归前序void preOrder(BTNode* pRoot){ if(pRoot!=NULL) { return; }原创 2013-10-06 14:10:02 · 2850 阅读 · 0 评论 -
面试常考手写代码之--二叉树层次遍历(BFS)
struct BTNode_s{ int value; BTNode_s* pLeft; BTNode_s* pRight;}BTNode;void BFS(BTNode* pRoot){ if(pRoot==NULL) return; std::dequeBTNode*> treeDeque; tree原创 2013-10-06 14:11:45 · 3458 阅读 · 0 评论 -
求三个排序数组的交集
void GetThreeArrayComm(int A[],int lenA,intB[], int lenB, int C[],int lenC){ assert(A!= NULL&&B != NULL&&C != NULL&&lenA > 0&& lenB >0&&lenC > 0); int i=0; i原创 2013-10-06 14:17:20 · 2050 阅读 · 0 评论 -
STL空间配置器-第二级配置器
本文讲解SGI STL空间配置器的第二级配置器。相比第一级配置器,第二级配置器多了一些机制,避免小额区块造成内存的碎片。不仅仅是碎片的问题,配置时的额外负担也是一个大问题。因为区块越小,额外负担所占的比例就越大。额外负担是指动态分配内存块的时候,位于其头部的额外信息,包括记录内存块大小的信息以及内存保护区(判断是否越界)。要想了解详细信息,请参考MSVC或者其他malloc实现。图原创 2013-10-07 11:00:24 · 1416 阅读 · 0 评论 -
vector的内存释放
1.vector容器的内存自增长 与其他容器不同,其内存空间只会增长,不会减小。先来看看"C++ Primer"中怎么说:为了支持快速的随机访问,vector容器的元素以连续方式存放,每一个元素都紧挨着前一个元素存储。设想一下,当vector添加一个元素时,为了满足连续存放这个特性,都需要重新分配空间、拷贝元素、撤销旧空间,这样性能难以接受。因此STL实现者在对vector进行内存分配时,原创 2013-10-07 11:06:30 · 2371 阅读 · 2 评论 -
C++ 智能指针详解
C++ 智能指针详解一、简介由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。 用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::auto原创 2013-10-07 11:02:57 · 2053 阅读 · 0 评论 -
字符串匹配的KMP算法
作者: 阮一峰日期: 2013年5月 1日字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Don转载 2013-10-07 13:05:44 · 1533 阅读 · 0 评论 -
2014找工作总结-机会往往留给有准备的人
好基友的文章必须转,大神一枚:出处:http://blog.csdn.net/xiajun07061225/article/details/12844801 其实我的求职过程在十一之前就已经结束了,总体讲比较顺利。参加面试的几家公司基本都拿到了offer,分别是阿里巴巴、美团网、创新工场涂鸦移动以及华为。当时也参加了其他公司的面试,比如人人,一面过后收到了二面通知,转载 2013-10-18 18:31:10 · 18662 阅读 · 5 评论 -
2014找工作----扎实的基础和开阔的视野是企业最看重的因素
其实找工作之前一直很忐忑,或者说不是很自信,因为各种传言说14年就业难。实验室的项目逼的有些紧,在四川做项目,腾讯实习面试都错过了。4月底回到学校给实验室申请不去实验室,准备看书。----此为题。 一、毫无亮点的自我介绍 二本师范类本科,大学四年,只学会了MFC。用MFC做了几个垃圾的不能再垃圾的管理系统。没有看过任何一本经典书籍。当时就准备考研,考到了华科。 到了原创 2013-10-20 15:13:40 · 22908 阅读 · 97 评论 -
归并排序 笔试面试手写代码常考
归并排序是将两个或者两个以上的有序序列进行合并的一种排序算法。采用了分治的思想。它的主要思路是将序列分为两个子序列,对于两个最终有序的子序列进行合并,得到有序的整体序列。如何保证子序列有序呢?对子序列采用同样的方式进行划分,当子序列长度为1时,子序列有序,此时合并相邻的子序列。层层返回,不断地进行合并,最终完整的序列就是一个有序的序列。归并排序可以很清晰地以递归的方原创 2013-10-07 11:35:38 · 4397 阅读 · 3 评论 -
转折后的总结--2014年找工作
转折后的总结--找工作 好吧,还是忍不住做个总结,毕竟还是我人生中一次比较大的事件了。非常感谢华科,我的第二个母校能提供给我一个优秀的平台。非常感谢信息安全与保密实验室607室的老师们,给我诸多照顾,让我在找工作中脱颖而出从4月20就开始了为工作二战的准备,组建了【为了offer】群和kirin团组,一是为了集合大家的力量一起打基础,而是大家收集比较好的题目,算法,原创 2013-10-12 22:53:09 · 10199 阅读 · 21 评论 -
IT面试常问必会问题及参考解答
原创 2013-10-06 14:04:59 · 2768 阅读 · 1 评论 -
STL空间配置器-第一级配置器
一、SGI STL配置器简介 SGI STL的配置器与众不同,它与标准规范不同。如果要在程序中明确使用SGI配置器,那么应该这样写:vectorint,std::alloc> iv; 他的名字是alloc,而且不接受任何参数。标准配置器的名字是allocator,而且可以接受参数。SGI STL的每一个容器都已经指定了缺省配置器:alloc。我们原创 2013-10-07 10:54:56 · 1734 阅读 · 0 评论 -
KMP算法
int*next = NULL; void get_next(constchar * p){ assert(p != NULL); int m=strlen(p); next= (int*)malloc(m*sizeof(int)); if(next==NULL) {原创 2013-10-06 15:50:23 · 1141 阅读 · 0 评论 -
详解大端模式和小端模式
详解大端模式和小端模式一、大端模式和小端模式的起源 关于大端小端名词的由来,有一个有趣的故事,来自于JonathanSwift的《格利佛游记》:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战。战争的原因:大家都知道,吃鸡蛋的时候,原始的方法是打破鸡蛋较大的一端,可以那时的皇帝的祖父由于小时侯吃鸡蛋,按这种方法把手指弄破了,因此他的父亲,就下令,原创 2013-10-07 11:11:38 · 1925 阅读 · 0 评论 -
快速排序 改进快排的方法
快速排序法事应用最广泛的排序算法之一,最佳情况下时间复杂度是 O(nlogn)。但是最坏情况下可能达到O(n^2)。说明快速排序达到最坏情况的原因。并提出改善方案并实现之。答:改进方案:改进选取枢轴的方法1、选取随机数作为枢轴。但是随机数的生成本身是一种代价,根本减少不了算法其余部分的平均运行时间。2、使用左端,右端和中心的中值做为枢轴元。经验得知,选取左端,右端,中心元素原创 2013-10-07 11:32:42 · 25172 阅读 · 2 评论 -
2014阿里巴巴9月15哈尔滨校园招聘笔试题及答案
2014阿里巴巴9月15哈尔滨By lingfengtengfei1.假设把整数关键码K散列到N个槽的散列表,以下哪些散列函数是好的散列函数__.A、h(k) = k / N;B、h(k) = 1;C、h(k) = k mod N;D、h(k) = (k + Random(N))mod N, Random(N)返回一个0到N-1的整数 2.下面的排序算法中原创 2013-10-06 13:49:31 · 3047 阅读 · 0 评论 -
2014阿里巴巴9月14北京校园招聘笔试及参考答案
2014阿里巴巴9月14北京BY lingfengtengfei 第一部分单选题(前10题,每题2分,后10题每题3分共50分) 字符串"alibaba"有__个不同的排列。A、 5040 B、840 C、14 D、420下面一段C++代码的输出是__.class Base{public:int Bar原创 2013-10-06 13:46:05 · 12545 阅读 · 27 评论 -
笔试面试常见函数编程实现
目录strcpystrstrmemcpymemoveStrcmpatoi最好不要用其他封装的函数。 strcpyC语言标准库函数原型声明:extern char*strcpy(char* dest, const char *src);头文件:#include功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间说明原创 2013-10-06 14:16:03 · 3327 阅读 · 3 评论 -
虚函数表的实现细节
·虚表是怎么实现的?虚表存放在哪里?·虚表中的数据是在什么时候确定的?·对象中的虚表指针又在什么时候赋值的?我们很难通过 C++语言本身来找到答案。 C++标准给编译器实现者定义了语法规范,但是被并没有定义如何实现这些语法规范,不同的编译器实现者可能有不同的实现方法,可以肯定的是他们的编译器必须符合这些语法规范。汇编语言作为最接近机器语言的计算机语言,可以为我们揭示原创 2013-10-06 14:23:54 · 20183 阅读 · 3 评论 -
c++虚继承对象的内存布局(修改版)
c++虚继承对象的内存布局(修改版) 网上关于c++对象布局的文章挺多,而且《深度探索c++对象模型》(Inside TheC++ Object Model 侯捷译)一书中也很详细地介绍。如果你一点都不了解C++对象的布局,我推荐你看看《深度探索c++对象模型》的第三章,如果你意犹未尽下面的两个系列都很不错:一是陈皓的《C++ 对象的内存布局》图文并貌,原创 2013-10-06 15:32:44 · 1448 阅读 · 0 评论 -
红黑树详解
前言: 之所以要写这篇文章,第一个目的是为了各位朋友在查看我写的源代码之前有一个可以理解理论的文章因为红黑树还是有点难的,如果不想搞懂理论,而直接看代码,那绝对是云里雾里,不知所云。第二个目的是我觉得网上虽然后不少我文章也在讲,但是我就是理解不上有点困难,在我参考了很多文章之后,认真阅读才慢慢摸透了其中的原理,所以我想用自己的方式来表达,希望有助于各位的朋友转载 2013-10-07 10:45:33 · 2204 阅读 · 0 评论 -
Linux 的启动流程
renren面试的时候考到了,转载一篇比较经典的作者: 阮一峰日期: 2013年8月17日半年前,我写了《计算机是如何启动的?》,探讨BIOS和主引导记录的作用。那篇文章不涉及操作系统,只与主板的板载程序有关。今天,我想接着往下写,探讨操作系统接管硬件以后发生的事情,也就是操作系统的启动流程。这个部分比较有意思。因为在BIOS转载 2013-10-07 13:03:57 · 1437 阅读 · 0 评论 -
字符串匹配的Boyer-Moore算法 BM算法详解
作者: 阮一峰日期: 2013年5月 3日上一篇文章,我介绍了KMP算法。但是,它并不是效率最高的算法,实际采用并不多。各种文本编辑器的"查找"功能(Ctrl+F),大多采用Boyer-Moore算法。Boyer-Moore算法不仅效率高,而且构思巧妙,容易理解。1977年,德克萨斯大学的Robert S. Boyer教授和J Strother Mo转载 2013-10-07 13:08:07 · 2029 阅读 · 0 评论 -
指针与引用的区别,指针与引用的底层实现是否一样?
指针与引用,在More Effective C++的条款一有详细讲述,条款一:指针与引用的区别 指针与引用看上去完全不同(指针用操作符’*’和’->’,引用使用操作符’.’),但是它们似乎有相同的功能。指针与引用都是让你间接引用其他对象。你如何决定在什么时候使用指针,在什么时候使用引用呢? 首先,要认识到在任何情况下都不能用指向空值的引用。一个引用必须总是指向某些对象。因此如果原创 2013-10-06 14:12:55 · 3798 阅读 · 0 评论 -
非C++内建型别A和B, 在哪几种情况下B能隐式转化为A?
有四种方法:? 第一种:classB: public A {…}B公有继承A,可以是间接公有继承,当把B的对象赋值给A,会发生隐式转换。(待求证,保护继承、私有继承、B是A的成员能否发生转换?)? 第二种:classB:{OperatorA();….}转换constructor。类B实现了隐式转化为类A;compi原创 2013-10-06 14:59:07 · 4732 阅读 · 0 评论 -
linux select函数详解
在Linux中,我们可以使用select函数实现I/O端口的复用,传递给 select函数的参数会告诉内核: •我们所关心的文件描述符 •对每个描述符,我们所关心的状态。(我们是要想从一个文件描述符中读或者写,还是关注一个描述符中是否出现异常) •我们要等待多长时间。(我们可以等待无限长的时间,等待固定的一段时间,或者根本就不等待)原创 2013-10-08 08:54:35 · 91808 阅读 · 18 评论