面试经典题
云中孤鹜
这个作者很懒,什么都没留下…
展开
-
static全局变量,static局部变量,static函数与全局变量,局部变量,普通函数的区别
static 全局变量与普通的全局变量有什么区别?static 局部变量和普通局部变量有什么区别?static 函数与普通函数有什么区别? 答案:全局变量( 外部变量) 的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文转载 2013-07-10 17:48:25 · 806 阅读 · 0 评论 -
飞机加油问题
条件: (1)每个飞机只有一个油箱, (2)飞机之间可以相互加油(注意是相互,没有加油机) (3)一箱油可供一架飞机绕地球飞半圈, 问题: 为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场) 答案: 三架飞机,共起飞五架次。 解析: 这道题在网上流传了很久了,转载 2013-09-20 20:54:10 · 1189 阅读 · 0 评论 -
求二叉树中两个节点的最低公共祖先节点
直接贴代码 #include "stdafx.h" #include #include using namespace std; //定义二叉树的节点 struct BinaryTreeNode { char m_nvalue; BinaryTreeNode * m_pleft; BinaryTreeNode * m_pright; }; //创建值为value的节点 B原创 2013-09-05 12:11:51 · 3041 阅读 · 0 评论 -
求两个链表是否相交总结
求两个链表是否相交总结 求两个单链表是否相交分三种情况讨论: 1,如果两个链表一个有环,一个无环则一定不相交 2.如果都没有环,则判断两个链表的最后节点是否相同,如果相同则相交,不相同则不相交。 3.如果都有环,则判断一个链表环里的节点是否是另一个链表环里的节点。如果是则相交,如果不是则不相交。 现在的问题是如何判断一个链表是否有环? 我们可以设两个指针p1,p2。p1一次移动原创 2013-09-10 15:46:41 · 1580 阅读 · 0 评论 -
从海量数据中找出最小的k个数
从大量(海量)数据中查找最小的k(k一般比较小)个数,这是笔试中常考的题目。 如果是从少量数据中查找最小的k个数据,并且允许修改允许修改原始数据,侧利用Partition()函数,在O(N)的时间复杂度,O(1)的空间复杂度就可以找到最小的k个数据。 从大量数据中查找最小的k个数,我们可以利用一个容器先存储前k个数据,然后从数据中读取下一个数,判断该数是与容器中最大的数的大小,如果该数较原创 2013-08-30 17:52:25 · 4341 阅读 · 0 评论 -
顺时针打印矩阵
题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 直接贴代码: // 面试题20.cpp : 定义控制台应用程序的入口点。 #include "stdafx.h" #include using namespace std; //a为要打印的二维数组 //start一圈的起始坐标 //width为一圈的宽度 //要注意防止重读打印 void printOneCircle(原创 2013-08-29 19:56:09 · 751 阅读 · 0 评论 -
等概率随机函数的实现
利用等概率函数Rand5产生等概率函数Rand3 问题描述:现在有一个叫做Rand5的函数,可以生成等概率的[0, 5)范围内的随机整数,要求利用此函数写一个Rand3函数(除此之外,不能再使用任何能产生随机数的函数或数据源),生成等概率的[0, 3)范围内的随机整数。 //使用Rand5()实现Rand3() int Rand3() { int x;转载 2013-08-28 09:39:51 · 768 阅读 · 0 评论 -
递归和非递归实现链表反转
链表反转是面试笔试常考题目,直接贴代码。 反转函数如下://思路为将节点从前到后依次放到表头,最后最后的节点到了最前面,最前面的节点到了最后面 void ReverseList(ListNode * & head) { //如果链表为空或者链表中只有一个元素 if(head==NULL || head->m_pNext==NULL) return; ListNode原创 2013-08-26 16:43:56 · 17390 阅读 · 3 评论 -
教你如何迅速秒杀掉:99%的海量数据处理面试题
教你如何迅速秒杀掉:99%的海量数据处理面试题 作者:July 出处:结构之法算法之道blog 前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的转载 2013-06-27 21:10:05 · 778 阅读 · 0 评论 -
互联网面试题:一个数组中找出三个出现奇数次的数字中的一个
2、异形数(25分) 在一个长度为n的整形数组a里,除了三个数字只出现一次外,其他的数字都出现了2次。请写程序输出任意一个只出现一次的数字,程序时间和空间复杂度越小越好。 例如: a ={1,3,7,9,5,9,4,3,6,1,7},输出4或5或6 //异形数问题 #include using namespace std; int lowbit(int x) {转载 2013-06-26 12:04:21 · 1542 阅读 · 0 评论 -
八皇后问题、N皇后问题回溯法详解
/* * 回溯法解N皇后问题 * 使用一个一维数组表示皇后的位置 * 其中数组的下标表示皇后所在的行 * 数组元素的值表示皇后所在的列 * 这样设计的棋盘,所有皇后必定不在同一行 * * 假设前n-1行的皇后已经按照规则排列好 * 那么可以使用回溯法逐个试出第n行皇后的合法位置 * 所有皇后的初始位置都是第0列 * 那么逐个尝试就是从0试到N-1 * 如果达到N,仍未找到合法转载 2013-06-26 11:58:08 · 965 阅读 · 0 评论 -
兔子生仔问题
问题描述: 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问某个月的兔子总数为多少? 分析可以用一个表格来显示 未成熟 成熟 总数 月份 1 0 1 1转载 2013-06-26 11:42:59 · 1405 阅读 · 0 评论 -
【编程之美】金刚坐飞机问题
题目描述 现在有一架飞机要起飞,乘客们正准备按机票号码(1,2,3...,N)一次排队登机。突然来了一只大猩猩(金刚)。他也有机票,但是他插队第一个登上了飞机,然后随意的选择了一个座位坐下了。根据社会的和谐程度,其他的乘客有两种反应: 1.乘客们都义愤填膺,“既然金刚同志都不守规矩,为什么我要遵守?”他们也随意的找位置坐下,并且坚决不让座位给其他乘客。 2.乘客们虽然感到愤怒,但转载 2013-10-05 22:57:31 · 1157 阅读 · 0 评论