
面试问题
文章平均质量分 79
overstack
中大研究生喜欢linux后台技术各种架构研究方向是机器学习和数据挖掘
展开
-
动态规划问题简介-from july
转载 2014-06-27 16:47:52 · 5256 阅读 · 0 评论 -
C++中虚析构函数的作用
我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:class ClxBase{public: ClxBase() {}; virtual ~ClxBase() {}; virtual void DoSomething() { cout "Do转载 2013-04-11 22:09:50 · 647 阅读 · 0 评论 -
C/C++如何传递二维数组?
用二维数组作为参数传递(用二维数组处理矩阵),但是希望接受传递二维数组参数的函数可以处理任意维度的数组(希望矩阵的行数和列数都是不固定的)。【以下转帖】----------------------------------------------------------------------------------------------但一般传递二维数组的基本规则好像是这样的:可转载 2012-12-20 20:38:48 · 1023 阅读 · 0 评论 -
浅析malloc()的几种实现方式
malloc()是C语言中动态存储管理的一组标准库函数之一。其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值是一个指向所分配的连续存储域的起始地址的指针。 动态内存分配就是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不像数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据程序的需要即时分配,且分配的转载 2013-04-19 10:21:43 · 819 阅读 · 0 评论 -
数据库查询优化原则
步骤/方法对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:1select id from t where num is null可以在num上设置默认值转载 2013-04-17 19:37:51 · 699 阅读 · 0 评论 -
数据段 代码段 堆 栈 BSS
转载 2013-04-18 01:13:38 · 811 阅读 · 0 评论 -
C语言的编译链接过程的介绍
C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织形成最终生成可执行代码的过程。过程图解如下: 从图上可以看到,整个代码的编译过程分为编译和链接两个过程,编译对应图中的大括号括起的部分,其余则为链转载 2013-04-18 00:50:16 · 833 阅读 · 1 评论 -
《算法导论》第12章 二叉查找树 (2)查找、插入与删除
1. 查找利用二叉查找树左小右大的性质,可以很容易实现查找任意值和最大/小值。[cpp] view plaincopyBSTNode * bst_search(BSTNode *node, int key) { while (node && key != node->key) {转载 2013-04-17 10:33:35 · 777 阅读 · 0 评论 -
二分查找(Binary Search)需要注意的问题,以及在数据库内核中的实现
问题背景 今年的实习生招聘考试,我出了一道二分查找(Binary Search)的题目。题目大意如下: 给定一个升序排列的自然数数组,数组中包含重复数字,例如:[1,2,2,3,4,4,4,5,6,7,7]。问题:给定任意自然数,对数组进行二分查找,返回数组正确的位置,给出函数实现。注:连续相同的数字,返回第一个匹配位置还是最后一个匹配位置,由函数传入参数决定。转载 2013-04-17 09:08:09 · 1028 阅读 · 0 评论 -
2013腾讯实习生笔试错误题目集锦
这篇博客目的只是记录今天笔试本人错误的题目,供后面复习用.并没有泄露试题的意思........1. 32位的机子,下面的说法哪些是正确的? signed char a = 0xe0; unsigned int b = a; unsigned char c = a;A. a>0 && c>0B. a==cC. b的十六进制的表示是:0xffffffe0D原创 2013-04-13 23:21:24 · 2243 阅读 · 7 评论 -
Time-wait状态(2MSL)一些理解
1. 编写TCP/SOCK 服务时,SO_REUSEADDR到底是什么意思?这个套接字选项通知内核,如果端口忙,但TCP状态处于TIME_WAIT,可以重用端口。如果端口忙,TCP状态处于其他状态,重用端口时依旧指明“地址已经在使用中”。如果你的服务程序停止后向立刻重启,而新套接字依旧使用同一个端口,此时SO_REUSEADDR选项非常有用。但是必须意识到,此时任何非期望数据到达,都可能导致服原创 2013-04-22 14:12:11 · 26723 阅读 · 2 评论 -
编程珠玑第九章-代码优化 读书笔记
1、内存访问(连续内存访问与跨页面访问内存的区别)注意在访问内存的时候,要注意内存的连续性,如果访问的内存不是连续的,那么程序的运行速度也会受到极大的影响例如访问一个二维数组时,先访问行,再访问列,能够减少页面调度次数,同时cache命中率也相对高些。2、递归调用宏时,需要小心,宏中的某个参数被调用了多次以致数值发生了变化#define Max(a,b) ((a>b)?:(a):(b))原创 2013-04-07 15:24:41 · 763 阅读 · 0 评论 -
百度面试题目(2012实习生面试)
1. c与c++分别是怎样动态分配和释放内存的,有什么区别?c语言提供内存动态分配的函数有:malloc、calloc、realloc,在使用这些函数时必须包含其头文件,分别为:、、 1) malloc 函数: void *malloc(unsigned int size) 在内存的动态分配区域中分配一个长度为size的连续空间,如果分配成功,则返回所分配内存空转载 2013-03-24 16:23:51 · 681 阅读 · 0 评论 -
关于二叉查找树的一些题目
转载自:http://blog.csdn.net/beiyeqingteng/article/category/8593951. 找出二叉查找树中第n大的值问题:给一个二叉查找树(BST),找出第 k 大的值。比如:该图中,第3大的值是10.分析:我们可以通过类似中序遍历的方法把BST从大到小排序,然后,就可以得到第 k 大的值了转载 2013-04-21 00:31:33 · 1067 阅读 · 0 评论 -
现代浏览器的工作原理
英文原文:Tali Garsiel,编译:zzzaquarius简介浏览器可以被认为是使用最广泛的软件,本文将介绍浏览器的工 作原理,我们将看到,从你在地址栏输入google.com到你看到google主页过程中都发生了什么。将讨论的浏览器今天,有五种主流浏览器——IE、Firefox、Safari、Chrome及Opera。本文将基于一些开源浏览器的例子——Fir转载 2014-05-13 19:12:50 · 8123 阅读 · 0 评论 -
Cracking the coding interview--问题与解答
作者:Hawstein出处:http://hawstein.com/posts/ctci-solutions-contents.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处。前言《Cracking the coding interview》是一本被许多转载 2013-10-09 19:21:55 · 2763 阅读 · 0 评论 -
数组统计分析
数组统计分析原题给定数组A,大小为n,数组元素为1到n的数字,不过有的数字出现了多次,有的数字没有出现。请给出算法和程序,统计哪些数字没有出现,哪些数字出现了多少次。能够在O(n)的时间复杂度,O(1)的空间复杂度要求下完成么?分析这个题目,是有一定技巧的。技巧是需要慢慢积累,待经验多了之后,可以灵感或者直觉,就产生了技巧。如果不知道技巧,那该怎么办呢?在开转载 2013-09-04 13:11:31 · 985 阅读 · 0 评论 -
五桶球,一桶不正常,不知道球的重量和轻重关系,用天平称一次找出那桶不正常的球
五桶球,一桶不正常,不知道球的重量和轻重关系,用天平称一次找出那桶不正常的球。 天平只能用一次。 5个桶依次编号1,2,3,4,5方法一: 依次从编号好的前4个桶拿出5,7,11,13个球 5+13=7+11 放天平左右 if(天平平衡) 第五个坏的 if(不平衡) 用游标+砝码把天平转载 2013-07-09 13:29:56 · 3939 阅读 · 0 评论 -
广研二面题目
1. 实现一个memcpy函数。先看下标准memcpy()的解释:void *memcpy(void *dst, const void *src, size_t n);//If copying takes place between objects that overlap, the behavior is undefined.事实上所说的陷阱也在于此,自己动手实现m原创 2013-03-27 23:25:51 · 792 阅读 · 0 评论 -
链表逆序、判断是否有环、求环的起点;两个链表是否相交、交点
链表是常用的数据结构。typedef struct Node{ElemType data;Node* link;}Node, *List;常规链表操作,诸如遍历,插入,删除等就不再给出代码。需要注意的是,对链表的合法性进行检验;删除时,勿忘记释放其结点所占用的空间。1、链表逆序:链表逆序需要维护三个指针,一个指向前一个*pre,一个指转载 2013-06-03 11:38:30 · 1046 阅读 · 0 评论 -
教你如何迅速秒杀掉:99%的海量数据处理面试题
教你如何迅速秒杀掉:99%的海量数据处理面试题作者:July出处:结构之法算法之道blog前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的转载 2013-04-08 21:57:28 · 711 阅读 · 0 评论 -
最长单调递增子序列
1.问题描述:求一个正整数序列的最长单调自增子序列,子序列不要求是连续的。例如Input:55 2 4 3 1Output:22. 算法复杂度是O(N^2)其实这也是一个DP的方法!f[i]是以a[i]为最大值的子序列,那么f[]的最大值就是要的结果。int f[],a[];f[0] = 1;// base casef转载 2013-03-04 10:28:23 · 2406 阅读 · 0 评论 -
进程与线程的区别联系
对于线程,进程的概念一直都是比较模糊,最近整理了一下。总结起来就是,线程是进程的一部分,进程是程序的一部分。这个说法不准确,但是可以指出期间的差别; 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一转载 2013-06-03 13:27:57 · 856 阅读 · 0 评论 -
二叉数的一些题目(来自Standford cslibrary)
题目都是来自standford cs library:http://cslibrary.stanford.edu/110/BinaryTrees.html是一个关于二叉树的专题,上面还有很多其他的专题,适合刚入门或者要找工作同学复习用。下面是我自己从二叉树这个专题当中选取的一些有代表性的题目。基本数据结构如下:struct node { int data; stru原创 2013-06-02 16:40:01 · 824 阅读 · 0 评论 -
TCP的四种定时器
TCP使用四种定时器(Timer,也称为“计时器”):重传计时器:Retransmission Timer坚持计时器:Persistent Timer保活计时器:Keeplive Timer时间等待计时器:Time_Wait Timer。 (1)重传计时器:Retransmission Timer重传定时器:为了控制丢失的报文段或丢弃的报文段,也就是对报文段确认转载 2013-04-13 22:20:17 · 864 阅读 · 0 评论 -
最长递增子序列 (Longest Increasing Subsequence)
问题描述: 给定一个序列 An = a1 ,a2 , ... , an ,找出最长的子序列使得对所有 i j ,ai aj 。显然,暴力算法的时间复杂度是 O(2n ) ,因为搜索空间呈指数级增长。对于这种问题,如果要找复杂度为多项式时间的算法,自然而然地会想到动态规划。首先,要找出一种方法把该问题分解成只有多项式个子问题。考虑 a n 。如果最长递增子序列不 包含 an ,则问题变成要转载 2013-04-13 00:25:17 · 753 阅读 · 0 评论 -
分段,分页以及段页式内存管理
一. 分页存储管理1.基本思想用户程序的地址空间被划分成若干固定大小的区域,称为“页”,相应地,内存空间分成若干个物理块,页和块的大小相等。可将用户程序的任一页放在内存的任一块中,实现了离散分配。2. 分页存储管理的地址机构15 12 11 0 页号P转载 2013-04-12 20:58:33 · 2370 阅读 · 0 评论 -
编程珠玑第2章 习题解答
A、给定一个最多包含40亿个随机排列的32为整数的顺序文件,找出一个不存在文件中的32位整数(在文件中至少缺失一个这样的数——为什么?)。在具有足够内存的情况下,如何解决该问题?如何有几个外部的“临时”文件可用,但是仅有几百字节的内存,又该如何解决问题?1.在文件中至少缺失一个这样的数?为什么呢?这是因为32为表示能表示N=232-1个数,(42 9496 72转载 2013-03-24 00:28:57 · 1574 阅读 · 0 评论 -
《编程珠玑》习题-如何用位逻辑实现位向量
《编程珠玑》第一章提到了一个排序问题,具体需求抄在下面:输入:一个最多包含n个正整数的文件,每个数都小于n,其中n=107。如果在输入文件中有任何整数重复出现就是致命错误。没有其他数据与该整数相关联。输出:按升序排列的输入整数的列表。约束:最多有(大约)1MB的内存空间可用,有充足的磁盘存储空间可用。运行时间最多几分钟,运行时间为10秒就不需要进一步优化了。整个解题转载 2013-03-22 15:49:09 · 776 阅读 · 0 评论 -
腾讯2012实习生笔试题+答案解析
腾讯2012实习生笔试题+答案解析解答(欢迎共同讨论)转载请注明来源http://www.cnblogs.com/jerry19880126/选择D。循环队列的front和rear必有一个不指向实质元素,不然无法判断队列满或空。C。是这样的原理,磁盘会一直朝某个方向旋转,不会因为处理数据而停止。本题要求顺序处理R1到R10,起始位转载 2013-04-03 23:04:04 · 865 阅读 · 0 评论 -
关联、组合、聚合、依赖关系比较
类之间的关系1. 种类: Generalization(泛化),Dependency(依赖关系)、Association(关联关系)、Aggregation(聚合关系)、Composition(合成关系)。2. 其中Aggregation(聚合关系)、Composition(合成关系)属于Association(关联关系),是特殊的Association关联关系。3. Genera转载 2013-04-04 09:45:19 · 625 阅读 · 0 评论 -
设计模式-----桥接模式(Bridge Pattern)
学习设计模式也有一段时间了,今天就把我整理的一篇课程和大家分享,有不妥之处欢迎指出. 生活中的一个例子: 就拿汽车在路上行驶的来说。即有小汽车又有公共汽车,它们都不但能在市区中的公路上行驶,也能在高速公路上行驶。这你会发现,对于交通工具(汽车)有不同的类型,然而它们所行驶的环境(路)也在变化,在软件系统中就要适应两个方面的变化?怎样实现才能应对这种变化呢?概述:在软件系统中,转载 2013-04-03 12:34:04 · 2532 阅读 · 0 评论 -
TCP协议三次握手过程分析
TCP(Transmission Control Protocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urge转载 2013-03-14 21:40:08 · 591 阅读 · 0 评论 -
当你输入一个网址的时候,实际会发生什么?
原文:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ 作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件转载 2013-02-24 23:42:29 · 1033 阅读 · 0 评论 -
关于数组的几道面试题
2011年2月15日更新,加入找出绝对值最小的元素一题数组是最基本的数据结构,关于数组的面试题也屡见不鲜,本文罗列了一些常见的面试题,仅供参考,如果您有更好的题目或者想法,欢迎留言讨论。目前有以下18道题目,如果有好的题目,随时更新。数组求和求数组的最大值和最小值求数组的最大值和次大值求数组中出现次数超过一半的元素求数组中元素的最短距离求两个有序数组的共同元素求三个数组的共同元素找出数转载 2013-03-05 10:54:36 · 681 阅读 · 0 评论 -
算法方面的经典书籍
我常感叹到,学计算机的人是幸福的,因为在这个领域中有如此多的通俗易懂(相对来说)的经典好书,你需要做的只是坚持把它们一本一本读下去而已。学力学就没有这样的好事了(抱怨一下),除了论文就是论文,满篇公式,晦涩坚深,真不是给人看的(虽然我也没看过几篇)。在这里列出一些我看过或者准备看的算法书籍,以供参考。1. CLRS 算法导论 算法百科全书,只做了前面十几章的习题,便感觉受益无穷。转载 2013-03-05 20:16:39 · 731 阅读 · 0 评论 -
找硬币问题
算法导论上第16-1问题 考虑用最少的硬币数找n分钱的问题,假设每个硬币的值都是整数。a)请给出一种贪心算法,使得所换的硬币包括一角的,五分的,二角五分的合一分的。证明所给出的算法能产生最优解。b)假设可换的硬币单位是c的幂,也就是c0,c1, ..., ck 其中整数c>1, k>=1.证明贪心算法总可以产生一个最优解。c) 请给出一组是贪心算法不能产生最优转载 2013-03-05 19:54:12 · 1285 阅读 · 0 评论 -
从抽火柴的问题思考中去-如何从结论推导条件
看了刘未鹏的文章《跟波利亚学解题》之后关于解题方法的一些想法。这篇文章提到了我们从小大到看到的数学书上无一不是欧几里得方式定义的:从定义到定理,再到推论。是属于“顺流而下”式的。但这样的书其实完全扭曲了数学的发现过程。所以作者推荐我们去看波利亚的书《How to solve it》中的启发思考方法。刘未鹏自己也总结出了以下几点:1. 时刻不忘未知量2. 用特例启发思考3. 反过来推原创 2012-10-11 11:20:10 · 1680 阅读 · 1 评论 -
大整数加法
#include #include #include #define MAX_LEN 200int an1[MAX_LEN+10];int an2[MAX_LEN+10];char szLine1[MAX_LEN+10];char szLine2[MAX_LEN+10];int main(){ scanf("%s", szLine1); scanf("%s"转载 2013-04-04 21:30:14 · 598 阅读 · 0 评论 -
广研一面笔试题目
1. 原地reverse一个字符串2. 求strA和strB最长公共子串求解: 引进一个二维数组c[][],用c[i][j]记录X[i]与Y[j] 的LCS 的长度,b[i][j]记录c[i][j]是通过哪一个子问题的值求得的,以决定输出最长公共字串时搜索的方向。 我们是自底向上进行递推计算,那么在计算c[i,j]之前,c[i-1][j-1],c[原创 2013-03-27 08:21:20 · 733 阅读 · 0 评论