![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
IT职场面笔题
文章平均质量分 79
ccnunlp
这个作者很懒,什么都没留下…
展开
-
非递归遍历二叉树
#include<stdio.h>#include<malloc.h>typedef struct binode{ char data; struct binode *lchild; struct binode *rchild;}BiNode,*BiTree;/**************************** *...2009-10-31 17:00:33 · 120 阅读 · 0 评论 -
<算法书>子数组换位问题
子数组换位问题 设a[0:n-1]是一个有n个元素的数组,k(0<=k<=n-1)是一个非负整数。 试设计一个算法将子数组a[0:k]与a[k+1,n-1]换位。要求算法在最坏情况下耗时O(n),且只用到O(1)的辅助空间 (来自《计算机算法设计与分析》- 王晓东 - 第三章 - 递归与分治策略 - 课后习题) 初步思考:...原创 2010-05-21 13:48:45 · 445 阅读 · 0 评论 -
<游戏> 取石子
Tang和Jiang非常喜欢玩一种有趣的小游戏: 有N个石子,两人轮流从中取出1个, 3个或4个石子,当石子被取空时,游戏结束。最后一个取石子的人获胜, 第一次总是Tang取. 当然,他们俩都足够聪明,总会采取最优的策略。Input每行会有一个正整数N(N<=100000), 代表石子的个数, N=0 代表输入结束Output输出获胜人的名字。Sample...原创 2010-05-18 14:05:31 · 159 阅读 · 0 评论 -
【迅雷】多线程同步循环打印
/**************************************************************** * 迅雷笔试题: * 有三个线程ID分别是A、B、C,请有多线编程实现,在屏幕上循环打印10次ABCABC… * * @author: heartraid ********************************************...2010-03-03 20:51:55 · 92 阅读 · 0 评论 -
找一个数组中的主元素
问题:在一个规模为N的数组array[N]中,所谓主元素就是出现次数大于N/2的元素,例如 3.3.4.2.4.4.2.4.4 有一个主元素为4。 给出一个算法,如果过半元素存在,就找出来,否则给出报告,要求给出O(N)的算法。 常规想法...原创 2010-05-12 09:24:39 · 330 阅读 · 0 评论 -
【Google】25匹马的角逐
问题是这样的:一共有25匹马,有一个赛场,赛场有5个赛道,就是说最多同时可以有5匹马一起比赛。假设每匹马都跑的很稳定,不用任何其他工具,只通过马与马之间的比赛,试问最少得比多少场才能知道跑得最快的5匹马。 注意:"假设每匹马都跑的很稳定" 的意思是在上一场比赛中A马比B马快,则下一场比赛中A马依然比B马快。 稍微想一下,可以采用一种竞标赛排序(Tourn...原创 2010-05-10 08:25:43 · 571 阅读 · 1 评论 -
【腾讯】快速找到未知长度单链表的中间节点
普通的方法很简单,首先遍历一遍单链表以确定单链表的长度L。然后再次从头节点出发循环L/2次找到单链表的中间节点。算法复杂度为O(L+L/2)=O(3L/2)。 能否再优化一下这个时间复杂度呢?有一个很巧妙的方法:设置两个指针* fast、*slow都指向单链表的头节点。其中* fast的移动速度是* slow的2倍。当* fast指向末尾节点的时候,slow正好就在中间了。 C...2010-05-09 15:21:24 · 131 阅读 · 0 评论 -
【腾讯】1亿个数据取前1万大的整数
数据规模分析 不考虑操作系统的区别,通常将C++中的一个整型变量认为4bytes。那么1亿整型需要400M左右的内存空间。当然,就现代PC机而言,连续开辟400M的内存空间还是可行的。因此,下面的讨论只考虑在内存中的情况。为了讨论方便,假设M=1亿,N=1万。 用大拇指想想略微考虑一下,使用选择排序。循环1万次,每次选择最大的元素。源代码如下:...2010-04-29 08:05:21 · 237 阅读 · 0 评论 -
【腾讯】10G整数文件中寻找中位数
题目:在一个文件中有 10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。只写出思路即可(内存限制为 2G的意思就是,可以使用2G的空间来运行程序,而不考虑这台机器上的其他软件的占用内存)。 分析:既然要找中位数,很简单就是排序的想法。那么基于字节的桶排序是一个可行的方法(请见《桶排序》):思想:将整形的每1byte作为一个关键字,也就是说一个整形...2010-04-21 21:15:32 · 2884 阅读 · 0 评论 -
【腾讯】报纸与信件的字符匹配效率问题
题目:有一个江洋大盗,他每次写信都是从一张报纸上剪下单词,再把单词贴在信上。假如某张报纸的单词保存在vector<string>paper 中,而信的单词保存在vector<string>letter 中,写一个算法程序判别该报纸可不可以生成该信? 对比一些方法: 这里假设paper:(m个单词,每个单词平均d个字母),letter:(n个单词,每个单词平均...2010-03-30 10:11:23 · 105 阅读 · 0 评论 -
<算法书>最长前缀是逆串的子串
问题描述 :设T是长为n的文本串。描述一个找出T的最长前缀的O(n)时间的方法,该前缀也是T的逆串的一个子串。(来自《Algorithm Design》(中文版:算法分析与设计) - Chapter9 - 文本处理 - 创新题C-9.12) 分析:既然要在O(n)时间内完成,KMP算法是可以考虑的。根据题目要求我们发现要让T的前缀匹配到T的逆串。那么我们可以把T...2010-03-24 19:38:19 · 143 阅读 · 0 评论 -
【腾讯】连续数打乱判断出少了哪些数?
1. 问题:100个连续的数打乱之后,随机取出1个数,问如何最快速的判断出少了哪一个? 分析:对于所有100个连续的数,只要除余100。一定在0~99之间。一般来说,比较常规的做法就是先排序(利用Hash表定位),在循环查找。当然时间复杂度是O(2n)。现在介绍一种很牛的O(n)做法:求二进制异或运算。 异或运算: 0^0=1^1=0; ...2010-03-17 15:44:38 · 187 阅读 · 0 评论 -
Java面试过程中会遇到的问题
1、abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?abstract的method 不可以是static的,因为抽象的方法是要被子类实现的,而static与子类扯不上关系!abstract的method 不可以是native的,native方法表示该方法要用另外一种依赖平台的编程语言实现的,不存在着被子...原创 2010-08-28 09:37:13 · 174 阅读 · 0 评论