lintcode : 跳跃游戏
摘要:跳跃游戏 给出一个非负整数数组,你最初定位在数组的第一个位置。 数组中的每个元素代表你在那个位置可以跳跃的最大长度。 判断你是否能到达数组的最后一个位置。 样例 A = [2,3,1,1,4],返回 true. A = [3,2,1,0,4],返回 false. 解题 更新 public class
阅读全文
lintcode :单词搜索
摘要:题目 单词搜索 给出一个二维的字母板和一个单词,寻找字母板网格中是否存在这个单词。 单词可以由按顺序的相邻单元的字母组成,其中相邻单元指的是水平或者垂直方向相邻。每个单元中的字母最多只能使用一次。 单词可以由按顺序的相邻单元的字母组成,其中相邻单元指的是水平或者垂直方向相邻。每个单元中的字母最多只能
阅读全文
lintcode :最长公共前缀
摘要:题目 最长公共前缀 给k个字符串,求出他们的最长公共前缀(LCP) 给k个字符串,求出他们的最长公共前缀(LCP) 给k个字符串,求出他们的最长公共前缀(LCP) 样例 在 "ABCD" "ABEF" 和 "ACEF" 中, LCP 为 "A" 在 "ABCDEFG", "ABCEFG", "ABC
阅读全文
lintcode: 最小调整代价
摘要:题目 最小调整代价 给一个整数数组,调整每个数的大小,使得相邻的两个数的差小于一个给定的整数target,调整每个数的代价为调整前后的差的绝对值,求调整代价之和最小是多少。 给一个整数数组,调整每个数的大小,使得相邻的两个数的差小于一个给定的整数target,调整每个数的代价为调整前后的差的绝对值,
阅读全文
lintcode :最近公共祖先
摘要:题目 给定一棵二叉树,找到两个节点的最近公共父节点(LCA)。 最近公共祖先是两个节点的公共的祖先节点且具有最大深度。 对于下面这棵二叉树 LCA(3, 5) = 4 LCA(5, 6) = 7 LCA(6, 7) = 7 解题 不知道如何下手,参考链接,自顶向下的解法中有下面的说明: Java P
阅读全文
lintcode :最长公共子串
摘要:题目 最长公共子串 给出两个字符串,找到最长公共子串,并返回其长度。 给出两个字符串,找到最长公共子串,并返回其长度。 给出两个字符串,找到最长公共子串,并返回其长度。 样例 给出A=“ABCD”,B=“CBCE”,返回 2 给出A=“ABCD”,B=“CBCE”,返回 2 给出A=“ABCD”,B
阅读全文
lintcode:最小编辑距离
摘要:最小编辑距离 给出两个单词word1和word2,计算出将word1 转换为word2的最少操作次数。 你总共三种操作方法: 插入一个字符 删除一个字符 替换一个字符 样例 给出 work1="mart" 和 work2="karma" 返回 3 解题 动态规划解题 定义矩阵dp[][] dp[i]
阅读全文
lintcode:最长公共子序列
摘要:题目 最长公共子序列 给出两个字符串,找到最长公共子序列(LCS),返回LCS的长度。 给出两个字符串,找到最长公共子序列(LCS),返回LCS的长度。 给出两个字符串,找到最长公共子序列(LCS),返回LCS的长度。 样例 给出"ABCD" 和 "EDCA",这个LCS是 "A" (或 D或C),
阅读全文
lintcode:最长上升子序列
摘要:题目 最长上升子序列 给定一个整数序列,找到最长上升子序列(LIS),返回LIS的长度。 给定一个整数序列,找到最长上升子序列(LIS),返回LIS的长度。 给定一个整数序列,找到最长上升子序列(LIS),返回LIS的长度。 样例 给出[5,4,1,2,3],这个LIS是[1,2,3],返回 3 给
阅读全文
lintcode :First bad version 第一个错误的代码版本
摘要:题目 第一个错误的代码版本 代码库的版本号是从 1 到 n 的整数。某一天,有人提交了错误版本的代码,因此造成自身及之后版本的代码在单元测试中均出错。请找出第一个错误的版本号。 你可以通过 isBadVersion 的接口来判断版本号 version 是否在单元测试中出错,具体接口详情和调用方法请见
阅读全文
lintcode :前序遍历和中序遍历树构造二叉树
摘要:根据前序遍历和中序遍历树构造二叉树. 给出中序遍历:[1,2,3]和前序遍历:[2,1,3]. 返回如下的树: 你可以假设树中不存在相同数值的节点 解题 和上一题很类似的。 前序遍历:根左右 中序遍历:左根右
阅读全文
lintcode: 中序遍历和后序遍历树构造二叉树
摘要:题目 根据中序遍历和后序遍历树构造二叉树 给出树的中序遍历: [1,2,3] 和后序遍历: [1,3,2] 返回如下的树: 2 / \ 1 3 你可以假设树中不存在相同数值的节点 解题 1.后序遍历最后一个结点就是根节点,根据这个根结点把中序遍历划分开来,同时也把后续遍历划分开来 2.递归就好了 程
阅读全文
lintcode: 二叉树的锯齿形层次遍历
摘要:题目 二叉树的锯齿形层次遍历 给出一棵二叉树,返回其节点值的锯齿形层次遍历(先从左往右,下一层再从右往左,层与层之间交替进行) 给出一棵二叉树,返回其节点值的锯齿形层次遍历(先从左往右,下一层再从右往左,层与层之间交替进行) 给出一棵二叉树,返回其节点值的锯齿形层次遍历(先从左往右,下一层再从右往左
阅读全文
lintcode : 二叉树的层次遍历II
摘要:题目 给出一棵二叉树,返回其节点值从底向上的层次序遍历(按从叶节点所在层到根节点所在的层遍历,然后逐层从左往右遍历) 给出一棵二叉树 {3,9,20,#,#,15,7}, 按照从下往上的层次遍历为: 解题 和上一题的答案反过来 直接每次在list中第一个位置加入当前层结点
阅读全文
lintcode : 二叉树的层次遍历
摘要:题目 二叉树的层次遍历 给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问) 给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问) 给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问) 样例 给一棵二叉树 {3,9,20,#,#,15,7} : 3 / \ 9 20 / \ 15
阅读全文
lintcode:next permutation下一个排列
摘要:题目 下一个排列 给定一个整数数组来表示排列,找出其之后的一个排列。 给定一个整数数组来表示排列,找出其之后的一个排列。 给定一个整数数组来表示排列,找出其之后的一个排列。 样例 给出排列[1,3,2,3],其下一个排列是[1,3,3,2] 给出排列[4,3,2,1],其下一个排列是[1,2,3,4
阅读全文
lintcode:previous permutation上一个排列
摘要:题目 上一个排列 给定一个整数数组来表示排列,找出其上一个排列。 给定一个整数数组来表示排列,找出其上一个排列。 给定一个整数数组来表示排列,找出其上一个排列。 样例 给出排列[1,3,2,3],其上一个排列是[1,2,3,3] 给出排列[1,2,3,4],其上一个排列是[4,3,2,1] 给出排列
阅读全文
lintcode : 二叉树的序列化和反序列化
摘要:题目 设计一个算法,并编写代码来序列化和反序列化二叉树。将树写入一个文件被称为“序列化”,读取文件后重建同样的二叉树被称为“反序列化”。 如何反序列化或序列化二叉树是没有限制的,你只需要确保可以将二叉树序列化为一个字符串,并且可以将字符串反序列化为原来的树结构。 给出一个测试数据样例, 二叉树{3,
阅读全文
lintcode : find peak element 寻找峰值
摘要:题目 寻找峰值 你给出一个整数数组(size为n),其具有以下特点: 相邻位置的数字是不同的 A[0] < A[1] 并且 A[n - 2] > A[n - 1] 假定P是峰值的位置则满足A[P] > A[P-1]且A[P] > A[P+1],返回数组中任意一个峰值的位置。 你给出一个整数数组(si
阅读全文
lintcode 中等题:搜索旋转排序数组II
摘要:题目 搜索旋转排序数组 II 跟进“搜索旋转排序数组”,假如有重复元素又将如何? 是否会影响运行时间复杂度? 如何影响? 为何会影响? 写出一个函数判断给定的目标值是否出现在数组中。 跟进“搜索旋转排序数组”,假如有重复元素又将如何? 是否会影响运行时间复杂度? 如何影响? 为何会影响? 写出一个函
阅读全文
|
|
|