2015年10月15日
摘要:
题目: 排列序号 排列序号 给出一个不含重复数字的排列,求这些数字的所有排列按字典序排序后该排列的编号。其中,编号从1开始。 样例 例如,排列[1,2,4]是第1个排列。 解题: 这个题目感觉很坑的。感觉这只有求出所有的排列,然后找出其对应的下标,但是怎么求出排列,在做Project Euler 时 阅读全文
posted @ 2015-10-15 19:30
水滴四川
阅读(2831)
推荐(0)
编辑
2015年10月14日
摘要:
题目: 报数 报数指的是,按照其中的整数的顺序进行报数,然后得到下一个数。如下所示: 1, 11, 21, 1211, 111221, ... 1 读作 "one 1" -> 11. 11 读作 "two 1s" -> 21. 21 读作 "one 2, then one 1" -> 1211. 给 阅读全文
posted @ 2015-10-14 19:37
水滴四川
阅读(1239)
推荐(0)
编辑
2015年10月13日
摘要:
题目: 给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树。 给出数组 [1,2,3,4,5,6,7], 返回 可能有多个答案,返回任意一个即可 解题: 可以看出,这里的数组是所求二叉树,中序遍历的结果,把这个结果还原成树即可。曾经天勤数据结果好像有这一题。 Java程序: 总耗时: 2 阅读全文
posted @ 2015-10-13 20:55
水滴四川
阅读(820)
推荐(0)
编辑
摘要:
题目: 找出无向图汇总的相连要素 找出无向图汇总的相连要素 请找出无向图中相连要素的个数。 图中的每个节点包含其邻居的 1 个标签和 1 个列表。(一个无向图的相连节点(或节点)是一个子图,其中任意两个顶点通过路径相连,且不与超级图中的其它顶点相连。) 样例 给定图: A B C \ | | \ | 阅读全文
posted @ 2015-10-13 20:31
水滴四川
阅读(473)
推荐(0)
编辑
摘要:
题目: 恢复旋转排序数组 恢复旋转排序数组 给定一个旋转排序数组,在原地恢复其排序。 样例 [4, 5, 1, 2, 3] -> [1, 2, 3, 4, 5] 挑战 使用O(1)的额外空间和O(n)时间复杂度 说明 什么是旋转数组? 比如,原始数组为[1,2,3,4], 则其旋转数组可以是[1,2 阅读全文
posted @ 2015-10-13 20:12
水滴四川
阅读(823)
推荐(0)
编辑
摘要:
题目: 岛屿的个数 岛屿的个数 给一个01矩阵,求不同的岛屿的个数。 0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。 样例 在矩阵: [ [1, 1, 0, 0, 0], [0, 1, 0, 0, 1], [0, 0, 0, 1, 1], [0, 0, 0, 阅读全文
posted @ 2015-10-13 19:22
水滴四川
阅读(2560)
推荐(0)
编辑
摘要:
题目: 尾部的零 尾部的零 设计一个算法,计算出n阶乘中尾部零的个数 样例 11! = 39916800,因此应该返回 2 挑战 O(logN)的时间复杂度 解题: 常用方法: 也许你在编程之美中看到,通过求能够被2 整除和能够被5整除个数的最小值就是答案,或者直接求能够被5整除的个数就是答案<能够 阅读全文
posted @ 2015-10-13 16:47
水滴四川
阅读(2118)
推荐(0)
编辑
摘要:
题目: 将整数A转换为B 将整数A转换为B 如果要将整数A转换为B,需要改变多少个bit位? 样例 如把31转换为14,需要改变2个bit位。 (31)10=(11111)2 (14)10=(01110)2 挑战 你能想出几种方法? 解题: A-->B二进制要变化多少位?就是考虑A、B对应的二进制数 阅读全文
posted @ 2015-10-13 15:50
水滴四川
阅读(1071)
推荐(0)
编辑
2015年10月12日
摘要:
题目: 字符串查找 字符串查找 字符串查找(又称查找子字符串),是字符串操作中一个很有用的函数。你的任务是实现这个函数。 对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始)。 如果不存在,则返回 - 阅读全文
posted @ 2015-10-12 22:38
水滴四川
阅读(1378)
推荐(0)
编辑
摘要:
题目: 子树 子树 有两个不同大小的二叉树: T1 有上百万的节点; T2 有好几百的节点。请设计一种算法,判定 T2 是否为 T1的子树。 样例 下面的例子中 T2 是 T1 的子树: 1 3 / \ / T1 = 2 3 T2 = 4 / 4 下面的例子中 T2 不是 T1 的子树: 1 3 / 阅读全文
posted @ 2015-10-12 22:35
水滴四川
阅读(1278)
推荐(0)
编辑
摘要:
题目:奇偶分割数组分割一个整数数组,使得奇数在前偶数在后。样例给定[1, 2, 3, 4],返回[1, 3, 2, 4]。挑战在原数组中完成,不使用额外空间。解题:一次快速排序就可以得到结果Java程序:public class Solution { /** * @param nums... 阅读全文
posted @ 2015-10-12 19:55
水滴四川
阅读(723)
推荐(0)
编辑
摘要:
题目: 在二叉查找树中插入节点 给定一棵二叉查找树和一个新的树节点,将节点插入到树中。 你需要保证该树仍然是一棵二叉查找树。 样例 给出如下一棵二叉查找树,在插入节点6之后这棵二叉查找树可以是这样的: <!--StartFragment --> 挑战 能否不使用递归? 解题: 递归的方法比较简单 J 阅读全文
posted @ 2015-10-12 19:33
水滴四川
阅读(485)
推荐(0)
编辑
摘要:
题目: 在O(1)时间复杂度删除链表节点 给定一个单链表中的表头和一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。并在删除该节点后,返回表头。 样例 给定 1->2->3->4,和节点 3,返回 1->2->4。 解题: 方法好贱,先把要删除节点后面一个节点的值赋给删除 阅读全文
posted @ 2015-10-12 17:15
水滴四川
阅读(1106)
推荐(0)
编辑
摘要:
题目: 哈希函数 在数据结构中,哈希函数是用来将一个字符串(或任何其他类型)转化为小于哈希表大小且大于等于零的整数。一个好的哈希函数可以尽可能少地产生冲突。一种广泛使用的哈希函数算法是使用数值33,假设任何字符串都是基于33的一个大整数,比如: hashcode("abcd") = (ascii(a 阅读全文
posted @ 2015-10-12 15:35
水滴四川
阅读(763)
推荐(0)
编辑
摘要:
题目: 合并排序数组 II 合并两个排序的整数数组A和B变成一个新的数组。 样例 给出A = [1, 2, 3, empty, empty] B = [4,5] 合并之后A将变成[1,2,3,4,5] 注意 你可以假设A具有足够的空间(A数组的大小大于或等于m+n)去添加B中的元素。 解题: 这里给 阅读全文
posted @ 2015-10-12 10:55
水滴四川
阅读(1752)
推荐(0)
编辑
摘要:
题目: 合并排序数组 合并两个排序的整数数组A和B变成一个新的数组。 样例 给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6] 挑战 你能否优化你的算法,如果其中一个数组很大而另一个数组很小? 解题: 利用Java的ArrayList很简单的,时间复杂度O( 阅读全文
posted @ 2015-10-12 10:24
水滴四川
阅读(905)
推荐(0)
编辑
摘要:
数飞机 给出飞机的起飞和降落时间的列表,用 interval 序列表示. 请计算出天上同时最多有多少架飞机? 如果多架飞机降落和起飞在同一时刻,我们认为降落有优先权。 样例 对于每架飞机的起降时间列表:[[1,10],[2,3],[5,8],[4,7]], 返回3。 解题 参考链接 利用HashMa 阅读全文
posted @ 2015-10-12 10:16
水滴四川
阅读(634)
推荐(0)
编辑
摘要:
题目: 插入区间 插入区间 给出一个无重叠的按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 样例 插入区间[2, 5] 到 [[1,2], [5,9]],我们得到 [[1,9]]。 插入区间[3, 4] 到 [[1, 阅读全文
posted @ 2015-10-12 10:00
水滴四川
阅读(777)
推荐(1)
编辑
摘要:
题目: 合并区间 给出若干闭合区间,合并所有重叠的部分。 样例 给出的区间列表 => 合并后的区间列表: O(n log n) 的时间和 O(1) 的额外空间。 解题: 按照start对区间进行排序 实现Comparator接口,重写compare方法 private class IntervalC 阅读全文
posted @ 2015-10-12 09:56
水滴四川
阅读(1569)
推荐(0)
编辑
摘要:
题目: 合并两个排序链表 将两个排序链表合并为一个新的排序链表 样例 给出 1->3->8->11->15->null,2->null, 返回 1->2->3->8->11->15->null。 解题: 数据结构中的书上说过,可解,异步的方式移动两个链表的指针,时间复杂度O(n+m) Java程序: 阅读全文
posted @ 2015-10-12 09:22
水滴四川
阅读(623)
推荐(0)
编辑
2015年10月11日
摘要:
题目: 单例 单例是最为最常见的设计模式之一。对于任何时刻,如果某个类只存在且最多存在一个具体的实例,那么我们称这种设计模式为单例。例如,对于 class Mouse (不是动物的mouse哦),我们应将其设计为 singleton 模式。 你的任务是设计一个 getInstance 方法,对于给定 阅读全文
posted @ 2015-10-11 17:10
水滴四川
阅读(665)
推荐(0)
编辑
摘要:
题目: 加一 给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。 该数字按照大小进行排列,最大的数在列表的最前面。 样例 给定 [1,2,3] 表示 123, 返回 [1,2,4]. 给定 [9,9,9] 表示 999, 返回 [1,0,0,0]. 解题: 好像只有这样搞,对应 阅读全文
posted @ 2015-10-11 16:51
水滴四川
阅读(508)
推荐(0)
编辑
摘要:
题目: 判断数独是否合法 请判定一个数独是否有效。该数独可能只填充了部分数字,其中缺少的数字用 . 表示。 样例 下列就是一个合法数独的样例。 注意 一个合法的数独(仅部分填充)并不一定是可解的。我们仅需使填充的空格有效即可。 说明 什么是 数独? http://sudoku.com.au/TheR 阅读全文
posted @ 2015-10-11 16:29
水滴四川
阅读(3122)
推荐(0)
编辑
摘要:
题目: 判断字符串是否没有重复字符 实现一个算法确定字符串中的字符是否均唯一出现 样例 给出"abc",返回 true 给出"aab",返回 false 挑战 如果不使用额外的存储空间,你的算法该如何改变? 解题: 定义一个集合最简单。 Java程序: public class Solution { 阅读全文
posted @ 2015-10-11 11:05
水滴四川
阅读(970)
推荐(0)
编辑
摘要:
题目: 删除链表中倒数第n个节点 给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。 样例 给出链表1->2->3->4->5->null和 n = 2. 删除倒数第二个节点之后,这个链表将变成1->2->3->5->null. 注意 链表中的节点个数大于等于n 解题: 要删除倒数第n个节点 阅读全文
posted @ 2015-10-11 10:37
水滴四川
阅读(947)
推荐(0)
编辑
|
|
|