自定义博客皮肤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 932

原创 27.跳台阶问题

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

2012-08-05 15:15:55 1526

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

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

2012-08-05 15:09:57 1662 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 4166 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 11069

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

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

2012-07-25 23:30:21 3976

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

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

2012-07-24 21:54:16 627

原创 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,00 在下排出现了6 次,1 在下排出现了2 次,2 在下排出现了1 次,3 在下排出现了0 次....以此类推..这个题目采用自适应的方法,

2012-07-22 15:23:44 1998

原创 第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 2553 1

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

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

2012-07-22 14:08:21 790

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

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

2012-07-21 14:54:50 864

原创 第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 439

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

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

2012-07-14 09:35:17 353

原创 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 341

空空如也

空空如也

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

TA关注的人

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