上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 33 下一页
摘要: 题目:给定一个没有重复元素的数组A,定义A上的MaxTree如下:MaxTree的根节点为A中最大的数,根节点的左子树为数组中最大数左边部分的MaxTree,右子树为数组中最大数右边部分的MaxTree。请根据给定的数组A,设计一个算法构造这个数组的MaxTree。思路:如果能够确定每个节点的父亲节... 阅读全文
posted @ 2015-09-30 17:43 AndyJee 阅读(734) 评论(0) 推荐(0)
摘要: 题目:给定三个字符串A, B, C,判断C是否由A和B交错构成。交错构成的意思是,对于字符串C,可以将其每个字符标记为A类或B类,使得我A类的每个字符顺序构成了A字符串,B类的每个字符顺序构成了B字符串。如:对于A=”rabbit” B=”mq”, ”rabmbitq”是由A和B交错构成的,但”ra... 阅读全文
posted @ 2015-09-30 16:17 AndyJee 阅读(1921) 评论(0) 推荐(0)
摘要: 题目:给定一个只包含正整数的数组,给出一个方法,将数组中的数拼接起来,使得拼接后的数最大。例如,[1, 32, 212]拼接之后,所得到的最大数为322121。思路:比较方法:两个数先后顺序的确定,如a,b,如果ab>ba(转换为字符串,通过字典序排序),则a在b的前面;通过上面的比较方法,就可以对... 阅读全文
posted @ 2015-09-30 11:13 AndyJee 阅读(773) 评论(0) 推荐(0)
摘要: 题目:1、有一个100层高的大厦,你手中有两个相同的玻璃围棋子。从这个大厦的某一层及更高的层扔下围棋子就会碎,用你手中的这两个玻璃围棋子,找出一个最优的策略(扔最少的次数),来得知那个临界层面。2、如果大厦高度是N层,你有K个棋子,请问最少需要扔几次可以知道得临界层?思路:1、推导这里不推倒,直接给... 阅读全文
posted @ 2015-09-29 16:00 AndyJee 阅读(889) 评论(0) 推荐(0)
摘要: 题目:有头巾五条,三白二红,有三个人排成一列,每人戴一条头巾,后面的人能看到前面的人的头巾颜色,让每个人依次猜自己头巾的颜色,第一个人说不知道,第二个人说不知道,第三个人说不知道,沉默一会之后,突然某个人说“我知道了”,请问这个人是哪个?他的头巾是什么颜色?思路:答案:第一个人,头巾为白色。分析:1... 阅读全文
posted @ 2015-09-26 11:18 AndyJee 阅读(766) 评论(0) 推荐(0)
摘要: 题目:和为零的最大连续子数组思路:我首先想到的是前缀数组和,遍历一遍数组,计算出sum[i](表示从0-i的子数组之和)。有了前缀数组和,只要sum[i]=sum[j](i#include#includeusing namespace std;// O(n^2)int longestSubArray... 阅读全文
posted @ 2015-09-26 10:58 AndyJee 阅读(1126) 评论(0) 推荐(0)
摘要: 题目:1、有两个数组A和B,每个数组有k个数,从两个数组中各取一个数加起来可以组成k*k个和,求这些和中的前k大。2、有N个数组,每个数组有k个数,从N个数组中各取一个数加起来可以组成k^N个和,求这些和中的前k大。思路:1、将A和B两个数组,按照从大到小排序,那么很容易得到下面的求和矩阵,假设为C... 阅读全文
posted @ 2015-09-25 18:53 AndyJee 阅读(1435) 评论(0) 推荐(0)
摘要: 题目:有两个数组A和B,假设A和B已经有序(从大到小),求A和B数组中所有数的第K大。思路:1、如果k为2的次幂,且A,B 的大小都大于k,那么考虑A的前k/2个数和B的前k/2个数,如果A[k/2]B[mid]:如果m/2+n/2大于k,则表明k存在于A和B的前一半中;否则,只需在B的n/2之后的... 阅读全文
posted @ 2015-09-23 21:28 AndyJee 阅读(5042) 评论(0) 推荐(0)
摘要: 题目:假设有个有序数组在某个位置旋转,得到新的数组,即为旋转有序数组。如:(i.e.,0 1 2 4 5 6 7might become4 5 6 7 0 1 2).现给定一个这样的数组,在数组中查找某个数。如果找到,返回下标,否则返回-1;思路:思路1:考虑一个旋转有序数组的特点:前面部分是递增的... 阅读全文
posted @ 2015-09-22 13:04 AndyJee 阅读(1499) 评论(0) 推荐(0)
摘要: 题目:给定一数组,判断它是否为二叉查找树的后序遍历数组思路:想想,二叉查找数树的特点,任意根结点大于左子树的所有值,而小于右子树的所有值;再想想,后序遍历的特点,先遍历左子树,再遍历右子树,最后是根结点;因此很容易找到根结点,然后遍历数组找出左子树(从左往右比根结点小的),剩下右边的就是右子树,然后... 阅读全文
posted @ 2015-09-21 22:38 AndyJee 阅读(390) 评论(0) 推荐(0)
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 33 下一页