Algorithm
文章平均质量分 82
enyes_fang
这个作者很懒,什么都没留下…
展开
-
定义栈的数据结构,要求添加一个 min 函数,能够得到栈的最小元素
题目:设计包含 min 函数的栈。定义栈的数据结构,要求添加一个 min函数,能够得到栈的最小元素。要求函数 min、push以及 pop的时间复杂度都是 O(1)。 解题思路:栈是后进先出的数据结构,要求查询得到栈的最小元素,我们内部实现可以设计两个栈A、B,A栈保存用户进栈数据.原创 2015-01-31 09:24:18 · 1068 阅读 · 0 评论 -
hash 算法面试题解析
面试题:搜索的输入信息是一个字符串,总共有3000万的数据,但是大部分都是重复的,去重后,估计有300万数据,统计3000万输入信息中的最热门的前10条,我们每次输入的一个字符串为不超过255byte,内存使用只有1G。请描述思想,写出算法(java语言),空间和时间复杂度。思路:300万个字符串最多(假设没有重复,都是最大长度)占用内存3M*1K/4=0.75G。所以可以将所有字符串原创 2013-12-10 12:57:38 · 1015 阅读 · 0 评论 -
Java实现:求子数组的最大和(数组)
求子数组的最大和(数组)题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。 解题思原创 2015-02-01 11:47:32 · 2789 阅读 · 0 评论 -
Java 连续数 二分法 分组
将一组数分组,要求将连续的分成一组。如1、2、3、5、8、9结果为:1-3、5-5、8、9. public class Bean{ private int minValue; private int maxValue; public boolean canAddToGroup(int value) { if (value >= minValue && va原创 2013-07-24 21:11:02 · 1314 阅读 · 0 评论 -
Java实现:在二元树中找出和为某一值的所有路径
题目: 输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。 例如输入整数 22和如下二元树 10 / \ 5 12 / \ 4 7解题思路:二叉树的中原创 2015-02-02 23:50:22 · 614 阅读 · 0 评论 -
Java实现: 把二元查找树转变成排序的双向链表(树)
题目 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14 / \ / \ 4 8 12 16转换成双向链表4=6=8=10=12=14=16。原创 2015-02-01 16:53:56 · 825 阅读 · 0 评论