上一页 1 ··· 3 4 5 6 7 8 9 10 下一页
摘要: 出题:求二叉树中距离最远的两个节点之间的距离,此处的距离定义为节点之间相隔的边数;分析:最远距离maxDis可能并不经过树的root节点,而树中的每一个节点都可能成为最远距离经过的子树的根节点;所以计算出以每个节点为根节点的子树的最 远距离,最后取他们的最大值就是整棵树的最远距离;如果递归层次过多造... 阅读全文
posted @ 2014-05-25 14:40 Leo C. 阅读(401) 评论(0) 推荐(0) 编辑
摘要: 出题:求数组中最长递增子序列的长度(递增子序列的元素可以不相连);分析:解法1:应用DP之前需要确定当前问题是否具有无后效性,也就是每个状态都是对之前状态的一个总结,之后的状态仅会受到前一个状态的影响;对于递增子序列 而言,可以首先确定前面k个元素的最长子序列,然后计算增加一个元素之后的最长子序列。... 阅读全文
posted @ 2014-05-25 14:35 Leo C. 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 出题:给定一个数字序列,其中每个数字最多出现两次,只有一个数字仅出现了一次,如何快速找出其中仅出现了一次的数字;分析:由于知道一个数字异或操作它本身(X^X=0)都为0,而任何数字异或操作0都为它本身,所以当所有的数字序列都异或操作之后,所有出现两次的数字异或操作之后的结果都为0,则最后剩下的结果就... 阅读全文
posted @ 2014-05-25 14:32 Leo C. 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 出题:不同大小烙饼的排序问题:对于N块大小不一的烙饼,上下累在一起,由于一只手托着所有的饼,所以仅有一只手可以翻转饼(假设手足够大可以翻转任意块数的 饼),规定所有的大饼都出现在小饼的下面则说明已经排序,则最少需要翻转几次,才能达到大小有序的结果(改变饼的顺序只能整体翻转,不能相邻交换);分析:假设... 阅读全文
posted @ 2014-05-25 14:28 Leo C. 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 出题:多人按照从低到高排成一个前后队列,如果前面的人比后面的高就认为是一个错误对; 例如:[176,178,180,170,171]中的错误对为 , , , , , 。 现在要求从一个整数序列中找出所有这样的错误对;分析:逆序对(Inversion Pair):在N个可判断大小的数中,逆序... 阅读全文
posted @ 2014-05-24 10:03 Leo C. 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 出题:要求将一个有序整数数组转换成最小深度的Binary Search Tree表示;分析:由于需要是最小深度,所以BST应保持平衡,左右节点数大致相当,并且BST中当前根节点大于所有其左子树中的元素,小于所有其右子树中的元素。对于排序数组而言,中间元素必然作为根节点,然后递归对由中间元素分割的左右... 阅读全文
posted @ 2014-05-24 09:52 Leo C. 阅读(605) 评论(0) 推荐(0) 编辑
摘要: 出题:在已经排序的数组中,找出给定数字出现的次数;分析:解法1:由于数组已经排序,所以可以考虑使用二分查找确定给定数字A的第一个出现的位置m和最后一个出现的位置n,最后m-n+1就是A出现的次数;使用二分查找可疑快速确定给定数字,但是如果确定其左右范围则比较麻烦,对编码细节要求较高;解法2:Hash... 阅读全文
posted @ 2014-05-24 09:45 Leo C. 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 出题:一个长度为N的数组,其中的元素取值范围是1到N,要求快速判断数组是否存在重复数字;分析:解法1:如果N个元素的范围都是在1到N,所以如果没有重复元素,则每一个位置恰好可以对应数组中的一个元素之,通过将当前元素k交换到其本身应该在的位 置k,也就是k=array[i], array[array[... 阅读全文
posted @ 2014-05-24 09:40 Leo C. 阅读(1816) 评论(0) 推荐(0) 编辑
摘要: 出题:给定一个乱序链表,节点值为ASCII字符,但是其中有重复项,要求去除重复项并保证不改变剩余项的原有顺序;分析:创建一个256(2^8)大小的bool数组,初始化为false,顺序读取链表,将字母对应位置为false的重新标记为true并保留节点,将字母对 应位置为true的保持并删除节点;时间... 阅读全文
posted @ 2014-05-23 11:15 Leo C. 阅读(811) 评论(0) 推荐(0) 编辑
摘要: 出题:判断一个单向链表是否有环,如果有环则找到环入口节点;分析:第一个问题:使用快慢指针(fast指针一次走两步,slow指针一次走一步,并判断是否到达NULL,如果fast==slow成立,则说明链表有环);第二个问题:fast与slow相遇时,slow一定还没有走完一圈(反证法可证明);示意图A... 阅读全文
posted @ 2014-05-23 10:42 Leo C. 阅读(238) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 下一页