为实现O(1)的时间复杂度完成取队列中最大元素,使用maxStackItemIndex记录队列(使用两个栈实现)中最大元素下标,使用数组link2NextMaxItem[]记录数组中次大值的下标,这也就是使用两个栈(先进后出)模拟队列二不是直接使用队列(先进先出)的原因:先进后出可以保证当执行p.....
分类:
其他好文 时间:
2014-08-23 13:57:40
阅读次数:
205
将源区间按照x坐标大小排序,然后进行合并,使用二分查找目标区间x,y坐标在源区间中的分布,若两者分布于同一连续区间,则区间重合代码: 1 #include 2 #include 3 using namespace std; 4 5 struct section 6 { 7 int low;...
分类:
其他好文 时间:
2014-08-23 13:54:30
阅读次数:
252
给定一个循环链表,实现一个算法返回这个环的开始结点。
定义:
循环链表:链表中一个结点的指针指向先前已经出现的结点,导致链表中出现环。
例子:
输入:A -> B -> C -> D -> E -> C [结点C在之前已经出现过]
输出:结点C
可以用一个map 就解决问题了。
下面是编程之美上一种奇特的解法:快慢指针解法。
代码:...
分类:
其他好文 时间:
2014-08-22 21:16:09
阅读次数:
296
摘自 编程之美编程之美的第3.8题求二叉树中节点的最大距离中,在总结的时候,作者讲了一个分析递归问题的体会;1、首先弄清楚递归的顺序。 在递归的实现中,往往需要假设后续的调用已经完成,在此基础之上,才实现递归的逻辑。2、分析清楚递归体的逻辑然后写出来。3、考虑清楚递归退出的边界条件。也就是说,那些....
分类:
其他好文 时间:
2014-08-22 12:12:06
阅读次数:
212
参考文献
某海量用户网站,用户拥有积分,积分可能会在使用过程中随时更新。现在要为该网站设计一种算法,在每次用户登录时显示其当前积分排名。用户最大规模为2亿;积分为非负整数,且小于100万。
存储结构
首先,我们用一张用户积分表user_score来保存用户的积分信息。
表结构:
scoreschema" title="" style="border:0px">
示例数据:
sco...
分类:
其他好文 时间:
2014-08-21 19:28:14
阅读次数:
362
《编程之美》里的一个题目:能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,假设这个数组中肯定存在至少一组符合要求的解。 LeetCode的题目: Given an array of integers, find two numbers such that they add up ...
分类:
其他好文 时间:
2014-08-21 14:45:44
阅读次数:
186
菜鸟系列之C/C++经典试题(二)
求子数组的最大和...
分类:
编程语言 时间:
2014-08-20 21:09:42
阅读次数:
300
编程之美之队列中取最大值操作
剑指offer之取栈中最小值操作...
分类:
其他好文 时间:
2014-08-20 19:42:12
阅读次数:
197
题目:如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。写一个程序求一棵二叉树中相距最远的两个节点之间的距离。...
分类:
其他好文 时间:
2014-08-20 19:40:12
阅读次数:
249