2014年10月27日

求二叉树中结点的最大距离 【微软面试100题 第十一题】

摘要: 题目要求: 如果我们把二叉树看成一个图,父子结点之间的连线看成是双向的,我们姑且定义“距离”为两节点之间边的个数。写一个程序,求一颗二叉树中距离最远的两个结点之间的距离。 参考资料:编程之美3.8题目分析: 最远距离要么经过根结点,要么不经过根结点在左子树中,要么不经过根结点在右子树中。根据这... 阅读全文

posted @ 2014-10-27 22:42 tractorman 阅读(274) 评论(1) 推荐(0)

翻转句子中单词的顺序 【微软面试100题 第十题】

摘要: 题目要求: 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。 例如:输入"I am a student.",则输出"student. a am I". 参考资料:剑指offer第42题。题目分析: 1.实现一个翻... 阅读全文

posted @ 2014-10-27 21:23 tractorman 阅读(229) 评论(0) 推荐(0)

二叉搜索树的后序遍历序列 【微软面试100题 第九题】

摘要: 题目要求: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。 例如输入数组{5,7,6,9,11,10,8},则返回true,因为这个证书序列时某一二叉搜索树的后序遍历结果。如果输入的数组是{7,4,... 阅读全文

posted @ 2014-10-27 19:37 tractorman 阅读(254) 评论(0) 推荐(0)

第八题各小题汇总 【微软面试100题 第八题】

摘要: 题目1: 有两个房间,一房间里有三盏灯,另一房间里有控制着这三盏灯的三个开关,这两个房间是分割开的,从一间里不能看到另一件的情况。现在要求受训者分别进这两间房一次,然后判断出这三盏灯分别是由哪个开关控制的。 分析:通过温度来解决。题目2: 你让一些人为你工作了七天,你要用一根金条作为报酬。金条... 阅读全文

posted @ 2014-10-27 16:44 tractorman 阅读(289) 评论(0) 推荐(0)

判断两个链表是否相交 【微软面试100题 第七题】

摘要: 题目要求: 给出两个单向链表的头指针,比如h1和h2,判断两个链表是否相交。题目分析: 1.边界检查:是否为NULL 2.是否有环: i).h1和h2都没有环,则如果h1和h2的最后一个结点时同一个结点,则相交; ii).一个有环,一个无环,则肯定不相交; iii).都有环,... 阅读全文

posted @ 2014-10-27 16:15 tractorman 阅读(280) 评论(0) 推荐(0)

根据上排数填下排数 【微软面试100题 第六题】

摘要: 题目要求: 根据上排给出的十个数,在其下排填出对应的十个数。 要求下排每个数都是先前上排那十个数在下排出现的次数。 例如:上排: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在下排出... 阅读全文

posted @ 2014-10-27 11:32 tractorman 阅读(329) 评论(0) 推荐(0)

查找最小的k个元素 【微软面试100题 第五题】

摘要: 题目要求: 输入n个整数,输出其中最小的k个。 例如:输入1,2,3,4,5,6,7,8这8个数字,则最小的4个数字为1,2,3,4。参考资料:剑指offer第30题。题目分析: 解法一: 用快排的思想,但是最小的k个数不用排序,时间复杂度O(n). 优点:时间复杂度好,缺点:会修... 阅读全文

posted @ 2014-10-27 10:11 tractorman 阅读(241) 评论(0) 推荐(0)

导航