自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 28.整数的二进制表示中1 的个数

题目:输入一个整数,求该整数的二进制表达中有多少个1。 例如输入10,由于其二进制表示为1010,有两个1,因此输出2。 分析: 这是一道很基本的考查位运算的面试题。 包括微软在内的很多公司都曾采用过这道题。 思路:          设一个数的二进制是  a1 a2 a3 a4 ……an  ,其中ai 是0 或者1; 要求其中1的个数,只需设置一个计算器。   若an=

2012-08-05 15:28:52 922

原创 27.跳台阶问题

题目:一个台阶总共有n 级,如果一次可以跳1 级,也可以跳2 级。 求总共有多少总跳法,并分析算法的时间复杂度。 这道题最近经常出现,包括MicroStrategy 等比较重视算法的公司 都曾先后选用过个这道题作为面试题或者笔试题。 思路:    这个题目是组合问题。第一步有两种走法跳1级,跳2级。设f(n)是台阶有n级的总共跳法,那么   f(n) =   f(n-1) +

2012-08-05 15:15:55 1504

原创 第25 题: 写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)

功能: 在字符串中找出连续最长的数字串,并把这个串的长度返回, 并把这个最长数字串付给其中一个函数参数outputstr 所指内存。 例如:"abcd12345ed125ss123456789"的首地址传给intputstr 后,函数将返回9, outputstr 所指的值为123456789。 这个题目类似与 编写 char* strcpy(char* strdes,con

2012-08-05 15:09:57 1647 1

原创 第21 题 2010 年中兴面试题 编程求解: 输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数, 使其和等于m ,要求将其中所有的可能组合列出来.

思路:          这可实际上可以看成一个动态规划。 h(n,m)表示从1到n中 任意取几个数和为m的方法数。   则有 h(n,m)=   h(n-1,m-n) 或者  h(n-1,m)     (既n取或者不取)  当然其中  注意到 当 m 可以直接得出结果。 这个题目不知道有木有解析解。。。如果能求出 (1+x)(1+x^2)(1+x^3)……(1+x^n) 的

2012-07-30 22:29:47 4150 2

原创 第19 题: 题目:定义Fibonacci 数列如下: / 0 n=0 f(n)= 1 n=1 \ f(n-1)+f(n-2) n=2

输入n,用最快的方法求该数列的第n 项。 分析:在很多C 语言教科书中讲到递归函数的时候,都会用Fibonacci 作为例子。 因此很多程序员对这道题的递归解法非常熟悉,但....呵呵,你知道的。 思路:     f(n) = 1*f(n-1) +1* f(n-2);    f(n-1)=1*f(n-1)+ 0*f(n-2);    f(n)        1   1

2012-07-26 20:50:14 11035

原创 第18 题: 题目:n 个数字(0,1,…,n-1)形成一个圆圈,从数字0 开始每次从这个圆圈中删除第m 个数字(第一个为当前数字本身,第二个为当前数字的下一个数 字)。

当一个数字删除后,从被删除数字的下一个继续删除第m 个数字。 求出在这个圆圈中剩下的最后一个数字。 思路:       把这个题目中的开始数字改下以便下面的说明,n 个数字(1,…,n-1,n)形成一个圆圈,从数字1 开始每次从这个圆圈中删除  第(第说明与开始数字无关)m 个数字(第一个为当前数字本身,第二个为当前数字的下一个数 字)。      这个是Josephus问题的推广

2012-07-25 23:30:21 3960

原创 第15 题: 题目:输入一颗二元查找树,将该树转换为它的镜像,

即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。 例如输入:          8        / \       6 10       /\ /\     7 9 11 输出:            8       /     \    10     6      /\      /\   11 9 7 5 定义

2012-07-24 21:54:16 614

原创 6.给你10 分钟时间,根据上排给出十个数,在其下排填出对应的十个数

要求下排每个数都是先前上排那十个数在下排出现的次数。上排的十个数如下: 【0,1,2,3,4,5,6,7,8,9】 举一个例子, 数值: 0,1,2,3,4,5,6,7,8,9 分配: 6,2,1,0,0,0,1,0,0,0 0 在下排出现了6 次,1 在下排出现了2 次, 2 在下排出现了1 次,3 在下排出现了0 次.... 以此类推.. 这个题目采用自适应的方法,

2012-07-22 15:23:44 1984

原创 第14 题: 题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。

要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15 和数字15。由于4+11=15,因此输出4 和11。 对于数组的任意两个数a、b,a+b = key时满足。我们可以取边a、b,既2个嵌套的for循环,但是这样复杂度是O(n^2);  for ( a++ ) for ( b++) ....... 但是在我们这个过

2012-07-22 15:08:31 2535 1

原创 第11 题 求二叉树中节点的最大距离...

如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的, 我们姑且定义"距离"为两节点之间边的个数。 写一个程序, 求一棵二叉树中相距最远的两个节点之间的距离。 思路:        要求相距最远的两个节点之间的距离,我们可以这样考虑:由于只有根节点和子节点之间有相连的边 那么,假设最后结果是A和B有最大距离,那么A的根的根...... 与 B的根的根...... 是同样的

2012-07-22 14:08:21 777

原创 第10 题 翻转句子中单词的顺序。

题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。 例如输入“I am a student.”,则输出“student. a am I”。 思路: (1) 关键死空格符的位置,记录下每个空格符的位置; (2)字符串逆置是一个普通的问题,我们可以将这个字符串看成多个字符串; (3)字符串逆置的方法:

2012-07-21 14:54:50 853

原创 第9 题 判断整数序列是不是二元查找树的后序遍历结果

题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。 如果是返回true,否则返回false。 例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果:      8     / \   6 10   / \   / \ 5 7 9 11 因此返回true。 如果输入7、4、6、5,没有哪棵树的后序遍历的结果是这个序列,因此返回false

2012-07-21 13:41:44 429

原创 2.设计包含min 函数的栈。

定义栈的数据结构,要求添加一个min 函数,能够得到栈的最小元素。要求函数min、push 以及pop 的时间复杂度都是O(1)。本题的要求是实现O(1)的算法,空间和时间的关系既使用空间来节约时间;定义2个栈,一个是普通的栈,另一个是保存当前最小的元素的栈,由于每次压站或者出站的时候都进行了比较,所以每次min 的时候只要直接输出;时间复杂度都是0(1);#include #include

2012-07-14 09:35:17 340

原创 3.求子数组的最大和

题目: 输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n)。 例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2, 因此输出为该子数组的和18。#include #include #include using name

2012-07-11 13:40:49 331

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除