博客专栏  >  编程语言   >  解题笔记

解题笔记

网上有很多经典的面试题,大都出自微软、Google、百度这样的公司,很多题目都有解答。本人自己实现了一下,同时收集了一些其他的算法题。贴在博客上算是一个备份,方便以后查阅,同时也供各位网友参考。

关注
12 已关注
39篇博文
  • 解题笔记(37)——Catalan数计算及应用

    问题描述:卡塔兰数,是组合数学中一个常出现在各种计数问题中出现的数列。输入一个整数n,计算h(n)。其递归式如下:h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n...

    2011-09-10 09:17
    24386
  • 解题笔记(36)——最大公约数问题

    问题描述:求两个正整数的最大公约数。      思路:这是一个很基本的问题,最常见的就是两种方法,辗转相除法和辗转相减法。通式分别为 f(x, y) = f(y, x%y), f(x, y)...

    2011-09-05 20:37
    7708
  • 解题笔记(35)——旋转数组中的最小元素

    问题描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5...

    2011-08-30 21:58
    10463
  • 解题笔记(34)——求最长单调递减子序列

    问题描述:求一个数组的最长递减子序列 比如{9,4,3,2,5,4,3,2}的最长递减子序列为{9,5,4,3,2}。       思路:这是很经典的一个问题,用动态规划解决。假设源数组为A...

    2011-08-30 19:41
    11968
  • 解题笔记(33)——按层次遍历二元树

    问题描述:输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。           例如输入    8   / /  6 10 / / / / 5 7 9...

    2011-08-29 19:13
    14645
  • 解题笔记(32)——输入一颗二元查找树,将该树转换为它的镜像

    问题描述:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。           例如输入: ...

    2011-08-29 14:37
    10165
  • 解题笔记(31)——从数列1,2...n中随意取几个数,使其和等于m

    问题描述:输入两个整数n和m,从数列1,2.......n中随意取几个数,使其和等于m,要求将其中所有的可能组合列出来。       思路:这个问题其实背包问题的变形,本文给出两种解法。 ...

    2011-08-29 11:37
    15393
  • 解题笔记(30)——找含单链表的环入口点(转网上某位高手的解法)

    原文出处 http://hi.baidu.com/iwitggwg/blog/index/1  很不错。         问题1:如何判断单链表中是否存在环(即下图中从结点E到结点R组成的环)? ...

    2011-08-27 20:22
    16589
  • 解题笔记(30)——找含单链表的环入口点

    问题描述:有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。如果链表存在环,找到环的入口点?       思路:这道题的原型可能...

    2011-08-27 16:17
    8196
  • 解题笔记(29)——珠子问题

    问题描述:一串首尾相连的珠子(n个),有N种颜色(N       思路:可以利用一种计数的方法。定义两个指针p1和p2,主要有三个步骤:      (1)p1向前移动,如果p1所指...

    2011-08-27 12:43
    6693
  • 解题笔记(28)——寻找捣乱分子对

    问题描述:多人排成一个队列,我们认为从低到高是正确的序列,但是总有部分人不遵守秩序。如果说,前面的人比后面的人高(两人身高一样认为是合适的),那么我们就认为这两个人是一对“捣乱分子”,比如说,现在存在...

    2011-08-25 14:25
    8455
  • 解题笔记(27)——找数组中的特定元素

    问题描述:一个int数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它。能否只用一个额外数组和少量其它空间实现。       思路:如果能用...

    2011-08-24 21:19
    7566
  • 解题笔记(26)——排队问题

    问题描述:12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种?         思路:可以用递归来解决。假设已按高矮顺序编号从0到11,即0号最...

    2011-08-23 21:45
    6904
  • 解题笔记(25)——把数组排成最小的数

    问题描述:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{32,  321},则输出这两个能排成的最小数字32132。请给出解决问题的算法,并证明该算法。...

    2011-08-21 10:40
    15446
  • 解题笔记(24)——找出数组中两个只出现一次的数字(数组)

    问题描述:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。      思路:如果只有一个数字只出现一次,而...

    2011-08-20 18:57
    11818
  • 解题笔记(23)——一个线程竞争的问题

    下面这个程序存在竞争,当对等线程执行 int myid = *((int *)argv)  前,如果主线程先执行了 i++,那么对等线程的执行结果是不正确。 #include #include...

    2011-08-13 22:03
    1854
  • 解题笔记(22)——n后问题

    问题描述:在n×n格的棋盘上放置彼此不受攻击的n个皇后。即任意两个皇后不得处在同一行、同一列或者同一对角斜线上。下图中的每个黑色格子表示一个皇后,这就是一种符合条件的摆放方法。请求出总共有多少种摆法。

    2011-07-29 16:05
    2114
  • 解题笔记(21)——字符串的排列组合问题

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

    2011-07-29 14:48
    21666
  • 解题笔记(20)——判断二叉树是不是平衡的

    问题描述:输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。例如下图中的二叉树就是一棵平衡二叉树:   ...

    2011-07-29 10:09
    4924
  • 解题笔记(19)——数对之差的最小值

    问题描述:在数组中,数字减去它右边的数字得到一个数对之差。求所有数对之差的最大值。例如在数组{2, 4, 1, 16, 7, 5, 11, 9}中,数对之差的最大值是11,是16减去5的结果。 ...

    2011-07-29 09:08
    2247

img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部