面试常见问题
五癫
武汉理工大学软件工程
展开
-
c++常见面试题-malloc/free、new/delete解析
相同点: 都用于动态申请和释放内存不同点: (1)操作对象的不同 malloc与free是C 语言的标准库函数,new/delete 是C++的运算符。malloc和free只是单纯的向内核申请或释放虚拟空间。而对于非内部数据类型的对象而言,创建时我们经常需要做初始化的某些操作,释放时需要做一些清理工作,malloc和free无法满足这种对象的要求。因此C++语言需要一个原创 2017-08-01 11:05:04 · 679 阅读 · 0 评论 -
c++常见面试题-C/C++程序内存分配情况
1.由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放为运行函数而分配的局部变量、函数参数、返回数据、返回地址等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。分配方式类似于链表。3、全局区(静态区)(static)—存放全局变量、静态数据、常量。原创 2017-08-01 18:04:41 · 2313 阅读 · 0 评论 -
c++常见面试题汇总
1.面向对象的三大特性封装、继承、多态2.变量的声明和定义有什么区别为变量分配地址和存储空间的称为定义,不分配地址的成为声明。一个变量可以在多个地方声明,但是只在一个地方定义。加入extern修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分定义。3.sizeof和strlen的区别sizeof是一个操作符,strlen是库函数sizeof的参数可以是数据的类型...转载 2017-08-01 11:32:44 · 434 阅读 · 0 评论 -
算法系列-大数据面试题-在超大文件中找出访问百度次数最多的IP
1.题目描述现有海量日志数据保存在一个超级大的文件中,该文件无法直接读入内存,要求从中提取某天出访问百度次数最多的那个IP2.思考过程(1)面试中若题目提到大文件等,其实就是告诉你数据量大,不能一次性加载到内存中,而实际中我们就需要估算。既然是要对访问百度次数的ip做统计,我们最好先预处理一下,遍历把访问百度的所有ip写到另一个文件a中(2)ip用32位表示,所以最多有2^原创 2017-08-16 12:26:45 · 8248 阅读 · 4 评论 -
算法系列-大数据面试题-两个大文件中找出共同记录
1.题目描述给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?(假如每个url大小为10bytes)2.思考过程(1)首先我们最常想到的方法是读取文件a整体加载到内存中,建立哈希表(为什么要建立hash表?因为方便后面的查找),然后再读取文件b,整体加载到内存中,遍历文件b中每个url,对于每个遍历,我们都执行原创 2017-08-16 12:00:47 · 18856 阅读 · 15 评论 -
算法系列-大数据面试题-大文件中返回频数最高的100个词
1.题目描述有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M,要求返回频数最高的100个词2.思考过程(1)参见我的其他大数据面试题博文。此处1G文件远远大于1M内存,分治法,先hash映射把大文件分成很多个小文件,具体操作如下:读文件中,对于每个词x,取hash(x)%5000,然后按照该值存到5000个小文件(记为f0,f1,...,原创 2017-08-16 13:24:42 · 7596 阅读 · 4 评论 -
算法编程题-字符串类型题目
1.介绍在笔试面试中,字符串类型题目相当广泛,原因有一下几点:1.字符串可以看做是字符类型的数组,与数组的排序、查找、调整有关2.很多其他类型的题目最终可能会转化成字符串类型的题目2.需要掌握的几个概念1.回文2.子串(连续)3.子序列(不连续)4.前缀树(Trie树)5.后缀树和后缀数组6.匹配7.字典序3.字符串题目常见类型原创 2017-08-04 12:40:55 · 1791 阅读 · 0 评论 -
数据结构-哈希表原理详解
1.什么是哈希表(摘自百度百科):散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 2.哈希表原理(摘自百度百科)给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关...原创 2017-08-05 14:05:35 · 6598 阅读 · 0 评论