博客专栏  >  编程语言   >  程序员经典面试题集

程序员经典面试题集

选取剑指offer以及互联网名企的笔试面试经典算法进行讲解,给出最优实现代码。所有题目博主均在vs2008编辑器上实现,亲测算法有效,OJ题目均ac通过。 代码采用c语言实现。

关注
1 已关注
50篇博文
  • 面试题之变态跳台阶

    变态跳台阶 一个台阶总共有n级,如果一次可以跳1级,也可以跳2级......它也可以跳上n级。该青蛙跳上一个n级的台阶总共有多少种跳法?    分析:用Fib(n)表示青蛙跳上n阶台阶的跳法数,青蛙一...

    2015-08-13 11:16
    1111
  • 判断二叉树是不是平衡二叉树

    题目:输入一棵二叉树的根结点,判断该树是不是平衡二叉树。某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵二叉树。         我们很容易就能想到一个代码简洁却性能不佳的思路:在遍历...

    2015-06-04 21:55
    1059
  • 面试题之求二叉树的深度

    题目:输入一棵二叉树的根节点,求该树的深度。从根节点到叶子结点一次经过的结点形成树的一条路径,最长路径的长度为树的深度。根节点的深度为1。 struct BinaryTreeNode{ int m...

    2015-06-04 21:32
    943
  • 数字在排序数组中出现的次数

    题目: 统计一个数字在排序数组中出现的次数。例如,输入排序数组{1,2,3,3,3,3,4,5}和数字3由于3在这个数组中出现了4次,因此输出4。 题目解法很多,关键是要找到让人满意的方法,直接统计当...

    2015-06-04 21:10
    1640
  • 微软面试题之两个链表的第一个公共结点

    问题描述:给定两个单向链表,找出它们的第一个公共节点。链表的节点定义如下: struct ListNode { int m_nKey; ListNode* m_pNext; }...

    2015-06-03 22:34
    1008
  • 第一个只出现一次的字符

    题目:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出'b‘。 思路:         我们可以定义哈希表的键值(Key)是字符的ASCII值,而值(Value)是该字符出现...

    2015-05-29 13:24
    800
  • 丑数

    题目:我们把只包含因子2、3、5的数称作丑数(Ugly Number)。求按从小到大的顺序的第1500个丑数。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做第一个丑数。    思...

    2015-05-28 21:56
    736
  • 把数组排成最小的数

    题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这3个数字能排成的最小数字321323。 思路:   对...

    2015-05-28 21:10
    808
  • 连续字数组的最大和

    题目:输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间杂度为O(n)。 此题思路比较简单,直接上代码,注意考虑无效的输入。 //...

    2015-05-27 20:24
    1103
  • 最小的K个数

    题目:输入n个整数,找出其中最小的K个数。例如输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。 思路:     我们可以先创建一个大小为k的数据容器来存储最小的k个...

    2015-05-27 19:39
    753
  • 数组中出现次数超过一半的数字

    题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。 思...

    2015-05-26 22:45
    904
  • 字符串的排列

    题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。 思路:        ...

    2015-05-26 21:40
    726
  • 二叉搜索树与双向链表

    题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 二叉树结点的定义如下: struct BinaryTreeNode{ i...

    2015-05-25 22:56
    879
  • 复杂链表的复制

    题目:请实现函数ComplexListNode *Clone(ComplexListNode *pHead),复制一个复杂链表。在复杂链表中,每个结点除了有一个m_pNext指针指向下一个结点外,还有...

    2015-05-20 22:52
    1084
  • 二叉树中和为某一值的路径

    题目: 输入一棵一二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。从树的根结点开始往下一直到叶结点所经过的结点 形成一条路径。二义树结点的定义如下: struct BinaryT...

    2015-05-18 22:34
    850
  • 二叉搜索树的后序遍历序列

    题目: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。 思路:    在后序遍历得到的序列中,最后一...

    2015-05-18 21:43
    835
  • 从上往下打印二叉树

    题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。例如输入图中的二叉树,则依次打印出8、6、10、5、7、9、11。 二叉树结点定义如下: struct Binar...

    2015-05-17 11:43
    817
  • 栈的压入、弹出序列

    题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1、2、3、4、5是某栈的压栈序列,序列4、5、3、2、1是该压栈序列对...

    2015-05-16 21:03
    682
  • 包含min函数的栈

    定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中调用min,pop,push函数的时间复杂度都是O(1)。 #include #include using nam...

    2015-05-16 19:43
    663
  • 顺时针打印矩阵

    题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如,如果输入如下矩阵: 1  2   3   4 5  6   7   8 9  10  11  12 13 14  15...

    2015-05-16 11:53
    614
img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部