lintcode:Search Insert Position 搜索插入位置
摘要:题目: 搜索插入位置 给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。 搜索插入位置 给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。 你可以假设在数组中无重复元素。 样例 [1,3,
阅读全文
lintcode:搜索二维矩阵II
摘要:题目 搜索二维矩阵 II 写出一个高效的算法来搜索m×n矩阵中的值,返回这个值出现的次数。 这个矩阵具有以下特性: 每行中的整数从左到右是排序的。 每一列的整数从上到下是排序的。 在每一行或每一列中没有重复的整数。 写出一个高效的算法来搜索m×n矩阵中的值,返回这个值出现的次数。 这个矩阵具有以下特
阅读全文
lintcode :搜索二维矩阵
摘要:题目: 搜索二维矩阵 写出一个高效的算法来搜索 m × n矩阵中的值。 搜索二维矩阵 写出一个高效的算法来搜索 m × n矩阵中的值。 这个矩阵具有以下特性: 每行中的整数从左到右是排序的。 每行的第一个数大于上一行的最后一个整数。 样例 考虑下列矩阵: [ [1, 3, 5, 7], [10, 1
阅读全文
lintcode :Permutation Index 排列序号
摘要:题目: 排列序号 排列序号 给出一个不含重复数字的排列,求这些数字的所有排列按字典序排序后该排列的编号。其中,编号从1开始。 样例 例如,排列[1,2,4]是第1个排列。 解题: 这个题目感觉很坑的。感觉这只有求出所有的排列,然后找出其对应的下标,但是怎么求出排列,在做Project Euler 时
阅读全文
lintcode :Count and Say 报数
摘要:题目: 报数 报数指的是,按照其中的整数的顺序进行报数,然后得到下一个数。如下所示: 1, 11, 21, 1211, 111221, ... 1 读作 "one 1" -> 11. 11 读作 "two 1s" -> 21. 21 读作 "one 2, then one 1" -> 1211. 给
阅读全文
lintcode: 把排序数组转换为高度最小的二叉搜索树
摘要:题目: 给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树。 给出数组 [1,2,3,4,5,6,7], 返回 可能有多个答案,返回任意一个即可 解题: 可以看出,这里的数组是所求二叉树,中序遍历的结果,把这个结果还原成树即可。曾经天勤数据结果好像有这一题。 Java程序: 总耗时: 2
阅读全文
lintcode:Find the Connected Component in the Undirected Graph 找出无向图汇总的相连要素
摘要:题目: 找出无向图汇总的相连要素 找出无向图汇总的相连要素 请找出无向图中相连要素的个数。 图中的每个节点包含其邻居的 1 个标签和 1 个列表。(一个无向图的相连节点(或节点)是一个子图,其中任意两个顶点通过路径相连,且不与超级图中的其它顶点相连。) 样例 给定图: A B C \ | | \ |
阅读全文
lintcode:Recover Rotated Sorted Array恢复旋转排序数组
摘要:题目: 恢复旋转排序数组 恢复旋转排序数组 给定一个旋转排序数组,在原地恢复其排序。 样例 [4, 5, 1, 2, 3] -> [1, 2, 3, 4, 5] 挑战 使用O(1)的额外空间和O(n)时间复杂度 说明 什么是旋转数组? 比如,原始数组为[1,2,3,4], 则其旋转数组可以是[1,2
阅读全文
lintcode:Number of Islands 岛屿的个数
摘要:题目: 岛屿的个数 岛屿的个数 给一个01矩阵,求不同的岛屿的个数。 0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。 样例 在矩阵: [ [1, 1, 0, 0, 0], [0, 1, 0, 0, 1], [0, 0, 0, 1, 1], [0, 0, 0,
阅读全文
lintcode :Trailing Zeros 尾部的零
摘要:题目: 尾部的零 尾部的零 设计一个算法,计算出n阶乘中尾部零的个数 样例 11! = 39916800,因此应该返回 2 挑战 O(logN)的时间复杂度 解题: 常用方法: 也许你在编程之美中看到,通过求能够被2 整除和能够被5整除个数的最小值就是答案,或者直接求能够被5整除的个数就是答案<能够
阅读全文
lintcode:Flip Bits 将整数A转换为B
摘要:题目: 将整数A转换为B 将整数A转换为B 如果要将整数A转换为B,需要改变多少个bit位? 样例 如把31转换为14,需要改变2个bit位。 (31)10=(11111)2 (14)10=(01110)2 挑战 你能想出几种方法? 解题: A-->B二进制要变化多少位?就是考虑A、B对应的二进制数
阅读全文
lintcode:strStr 字符串查找
摘要:题目: 字符串查找 字符串查找 字符串查找(又称查找子字符串),是字符串操作中一个很有用的函数。你的任务是实现这个函数。 对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始)。 如果不存在,则返回 -
阅读全文
lintcode:Subtree 子树
摘要:题目: 子树 子树 有两个不同大小的二叉树: T1 有上百万的节点; T2 有好几百的节点。请设计一种算法,判定 T2 是否为 T1的子树。 样例 下面的例子中 T2 是 T1 的子树: 1 3 / \ / T1 = 2 3 T2 = 4 / 4 下面的例子中 T2 不是 T1 的子树: 1 3 /
阅读全文
lintcode 容易题:Partition Array by Odd and Even 奇偶分割数组
摘要:题目:奇偶分割数组分割一个整数数组,使得奇数在前偶数在后。样例给定[1, 2, 3, 4],返回[1, 3, 2, 4]。挑战在原数组中完成,不使用额外空间。解题:一次快速排序就可以得到结果Java程序:public class Solution { /** * @param nums...
阅读全文
lintcode:在二叉查找树中插入节点
摘要:题目: 在二叉查找树中插入节点 给定一棵二叉查找树和一个新的树节点,将节点插入到树中。 你需要保证该树仍然是一棵二叉查找树。 样例 给出如下一棵二叉查找树,在插入节点6之后这棵二叉查找树可以是这样的: <!--StartFragment --> 挑战 能否不使用递归? 解题: 递归的方法比较简单 J
阅读全文
lintcode:在O(1)时间复杂度删除链表节点
摘要:题目: 在O(1)时间复杂度删除链表节点 给定一个单链表中的表头和一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。并在删除该节点后,返回表头。 样例 给定 1->2->3->4,和节点 3,返回 1->2->4。 解题: 方法好贱,先把要删除节点后面一个节点的值赋给删除
阅读全文
lintcode:哈希函数
摘要:题目: 哈希函数 在数据结构中,哈希函数是用来将一个字符串(或任何其他类型)转化为小于哈希表大小且大于等于零的整数。一个好的哈希函数可以尽可能少地产生冲突。一种广泛使用的哈希函数算法是使用数值33,假设任何字符串都是基于33的一个大整数,比如: hashcode("abcd") = (ascii(a
阅读全文
lintcode:合并排序数组 II
摘要:题目: 合并排序数组 II 合并两个排序的整数数组A和B变成一个新的数组。 样例 给出A = [1, 2, 3, empty, empty] B = [4,5] 合并之后A将变成[1,2,3,4,5] 注意 你可以假设A具有足够的空间(A数组的大小大于或等于m+n)去添加B中的元素。 解题: 这里给
阅读全文
lintcode:合并排序数组
摘要:题目: 合并排序数组 合并两个排序的整数数组A和B变成一个新的数组。 样例 给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6] 挑战 你能否优化你的算法,如果其中一个数组很大而另一个数组很小? 解题: 利用Java的ArrayList很简单的,时间复杂度O(
阅读全文
lintcode:数飞机
摘要:数飞机 给出飞机的起飞和降落时间的列表,用 interval 序列表示. 请计算出天上同时最多有多少架飞机? 如果多架飞机降落和起飞在同一时刻,我们认为降落有优先权。 样例 对于每架飞机的起降时间列表:[[1,10],[2,3],[5,8],[4,7]], 返回3。 解题 参考链接 利用HashMa
阅读全文
|
|
|