中位数-LintCode

给定一个未排序的整数数组,找到其中位数。 中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序后数组的第N/2个数。 样例 给出数组[4, 5, 1, 2, 3], 返回 3 给出数组[7, 9, 4, 5],返回 5 时间复杂度为O(n) #ifndef C80_H #de...

2017-06-30 17:08:39

阅读数:134

评论数:0

最长公共子串-LintCode

给出两个字符串,找到最长公共子串,并返回其长度。 注意事项: 子串的字符应该连续的出现在原字符串中,这与子序列有所不同。 样例: 给出A=“ABCD”,B=“CBCE”,返回 2 思想: dp[i][j]表示以A[i],B[j]为结束字符的字符串,其最长公共子串的长度。由于要保证子串的...

2017-06-30 15:37:15

阅读数:80

评论数:0

最长公共前缀 -LintCode

给k个字符串,求出他们的最长公共前缀(LCP) 样例 在 “ABCD” “ABEF” 和 “ACEF” 中, LCP 为 “A” 在 “ABCDEFG”, “ABCEFG”, “ABCEFA” 中, LCP 为 “ABC”#ifndef C78_H #define C78_H #inclu...

2017-06-29 15:35:47

阅读数:278

评论数:0

最长公共子序列-LintCode

给出两个字符串,找到最长公共子序列(LCS),返回LCS的长度。 说明 最长公共子序列的定义: 最长公共子序列问题是在一组序列(通常2个)中找到最长公共子序列(注意:不同于子串,LCS不需要是连续的子串)。该问题是典型的计算机科学问题,是文件差异比较程序的基础,在生物信息学中也有所应用。 ...

2017-06-29 14:53:14

阅读数:80

评论数:0

最长上升子序列-LintCode

给定一个整数序列,找到最长上升子序列(LIS),返回LIS的长度。 说明: 最长上升子序列的定义: 最长上升子序列问题是在一个无序的给定序列中找到一个尽可能长的由低到高排列的子序列,这种子序列不一定是连续的或者唯一的。 样例: 给出 [5,4,1,2,3],LIS 是 [1,2,3],返...

2017-06-29 11:12:08

阅读数:107

评论数:0

寻找峰值-LintCode

你给出一个整数数组(size为n),其具有以下特点: 相邻位置的数字是不同的 A[0] < A[1] 并且 A[n - 2] > A[n - 1] 假定P是峰值的位置则满足A[P] > A[P-1]且A[P] > A[P+1],返回数组中任意一个峰值的位置。 注意事...

2017-06-29 10:39:10

阅读数:88

评论数:0

前序遍历和中序遍历树构造二叉树-LintCode

描述: 根据前序遍历和中序遍历树构造二叉树. 样例: 给出中序遍历:[1,2,3]和前序遍历:[2,1,3]. 返回如下的树: 2 / \ 1 3 思路: 递归构造二叉树,preorder第一个元素rootval作为根节点,在inorder中寻找rootval得到root...

2017-06-27 13:54:20

阅读数:234

评论数:0

二叉树的锯齿形层次遍历-LintCode

给出一棵二叉树,返回其节点值的锯齿形层次遍历(先从左往右,下一层再从右往左,层与层之间交替进行) 给出一棵二叉树 {3,9,20,#,#,15,7} 返回其锯齿形的层次遍历为: [ [3], [20,9], [15,7] ] 基本思想与二叉树的层次遍历一致,只不过...

2017-06-26 20:41:39

阅读数:178

评论数:0

二叉树的层次遍历 II -LintCode

给出一棵二叉树,返回其节点值从底向上的层次序遍历(按从叶节点所在层到根节点所在的层遍历,然后逐层从左往右遍历) 按照从下往上的层次遍历为: [ [15,7], [9,20], [3] ] #ifndef C70_H #define C70_H #include&a...

2017-06-26 20:31:00

阅读数:158

评论数:0

二叉树层次遍历-LintCode

给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问) 给一棵二叉树 {3,9,20,#,#,15,7} 遍历结果: [ [3], [9,20], [15,7] ] 主要思想: 为了层次遍历,就要一层一层地处理数据。先将根节点入队,之后搜寻其左子树与右子树...

2017-06-26 19:21:06

阅读数:130

评论数:0

二叉树的后序遍历

具体方法: 构建两个结点,一为当前结点(current),另一个为上次访问结点(lastVisited),并构建堆栈用于存放结点。若结点不为空,则从此节点开始,遍历左子树,并将结点依此压栈。取当前结点为栈顶结点,如果当前节点的右子树为空,或是上次访问的结点(证明已经遍历此节点的左子树与右子树),...

2017-06-22 16:00:35

阅读数:151

评论数:0

二叉树的前序遍历

二叉树的前序遍历 给出一棵二叉树,返回其节点值的前序遍历。 您在真实的面试中是否遇到过这个题? Yes 样例 给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [1,2,3]. 挑战 你能使用非递归实现么? #ifn...

2017-06-21 20:12:51

阅读数:110

评论数:0

合并排序数组 II

合并排序数组 II合并两个排序的整数数组A和B变成一个新的数组。 *注意事项: 你可以假设A具有足够的空间(A数组的大小大于或等于m+n)去添加B中的元素。 样例 给出 A = [1, 2, 3, empty, empty], B = [4, 5] 合并之后 A 将变成 [1,2,3,4...

2017-06-21 14:54:46

阅读数:92

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭