前言
RMQ: 数组 a0, a1, a2,..., an-1, 中求任意区间 a[i+1], a[i+2], ..., a[i+k] 的最小值
LCA: 求二叉树中两个节点的最低公共祖先
本文将证明这两个问题可以相互归约为另一个问题。
证明
先通过一个简单的例子来说明问题。见下图:
求 [7 2 8 6] 的最小值...
分类:
其他好文 时间:
2014-07-22 23:01:35
阅读次数:
271
精简Linux的文件路径:
..回退的功能.留在当前目录//只保留一个/abc/..要返回.报错删除最后一个/
主要思路: 用栈记录路径的起始位置,讨论/后的不同情况即可:
#include
#include
#include
#include
#include
#include
using namespace std;
int selectK(int num[]...
分类:
系统相关 时间:
2014-07-22 23:01:32
阅读次数:
384
G - 程序设计竞赛Time Limit: 3000/1000MS (Java/Others)
Memory Limit: 65535/65535KB
(Java/Others)SubmitStatus“你动规无力,图论不稳,数据结构松散,贪心迟钝,没一样像样的,就你还想和我同台竞技,做你的美梦!....
分类:
其他好文 时间:
2014-07-22 23:01:13
阅读次数:
415
一个轮流取数的游戏,取得的值最大者胜,这里要求结果。
这里使用一下deque数据结构吧。当然这里使用一般数列,用two points的思想解决也是可以的。
deque是可以两头取数都很快的容器。很适合本题这样的情况...
分类:
其他好文 时间:
2014-07-22 23:00:16
阅读次数:
286
1
什么是递归:实现某些功能不用递归可能要几十行代码,用递归可能几行就搞定了,而且代码清晰简洁。一直以为递归也就是自己调用自己,有一个出口条件,让他停止递归,退出函数,其实的特点并非就这些。递归还有一个非常重要的特点:先进后出,跟栈类似,先递进去的后递出来。由于递归一直在自己调用自己,有时候我们很难...
分类:
其他好文 时间:
2014-05-01 22:32:03
阅读次数:
570
哈哈,斯则表示的运算,非常经典的一个题目。哈哈,大家可以参考下,不过代码可能还包含错误,不过主线应该没有错误......
分类:
其他好文 时间:
2014-04-30 22:47:38
阅读次数:
232
树形结构是一类重要的非线性数据结构,其中以树和二叉树最为常用。
二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作二叉查找树和二叉堆或是二叉排序树。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2的 i -1次方个结点;...
分类:
其他好文 时间:
2014-04-30 22:44:38
阅读次数:
501
题目:输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串"345",则输出整数345。...
分类:
其他好文 时间:
2014-04-30 22:24:40
阅读次数:
459
前序:
(二叉)堆数据结构是一种数组对象,它可以被视为一棵完全二叉树。树中每个节点与数组中存放该节点值的那个元素对应。
树的每一层都是填满的,最后一层除外。
树的根为a[1] (在这里是从1开始的,也可以从0开始),给定了某个节点的下标i,其父节点为i/2,左二子为2*i,右儿子为2*i+1。
二叉堆满足二个特性:
1.父结点的键值总是大于或等于(小于或等于)任何一个...
分类:
其他好文 时间:
2014-04-30 22:15:38
阅读次数:
434
在机器学习(Machine learning)领域,主要有三类不同的学习方法:
监督学习(Supervised learning)、
非监督学习(Unsupervised learning)、
半监督学习(Semi-supervised learning),
监督学习:通过已有的一部分输入数据与输出数据之间的对应关系,生成一个函数,将输入映射到合适的输出,例如分类。
非监督学习:直接...
分类:
其他好文 时间:
2014-04-30 22:12:38
阅读次数:
297