博海文思


SkyHigh

树结构算法总结(2) 线段树Segment Tree

Previous 树结构算法总结(1) 二叉树的遍历 线段树Segment Tree 1.线段树基础 线段树的构造 什么是线段树? 线段树是一棵二叉树,他的每个节点包含了两个额外的属性start和end用于表示该节点所代表的区间。start和end都是整数,并按照如下的方式赋值: ...

树结构算法总结(1) 二叉树的遍历

树结构算法总结(1) 二叉树的遍历 1.非递归的遍历 前序遍历 思路 使用栈来模拟,比较简单,直接上代码。 代码 /** * Definition of TreeNode: * class TreeNode { * public: * int val; * ...

双端队列的妙用——滑动窗口的最大值

双端队列的妙用——滑动窗口的最大值 双端队列deque比较灵活,它融合了队列queue和栈stack的特性,数据可以从前面进出,也可以从后面进出。C++中的deque具体用法可以参考cpluscplus 下面我们通过一道来自《剑指Offer》和lintcode的题来看如何使用双端队列。 ...

Seq2Seq与Attention机制

Seq2Seq与Attention机制 Seq2Seq Seq2Seq即Sequence to Sequence,是一种时序对映射的过程,实现了深度学习模型在序列问题中的应用,其中比较突出的是机器翻译和机器人问答。Seq2Seq的思想最早由两篇论文引出,分别为《Sequence to Se...

词搜索与Trie树

词搜索与Trie树 Trie树 Trie树是一种比较简单的字典树,它通过前缀来构造单词的路径。当搜索一个单词的时候可以从根节点出发,一直找到单词节点(可以使用一个变量来标定)。如果该单词能够找到单词节点,那么说明这个词在字典里,否则不在(单词未搜索完或者搜索完但是未达到单词节点)。 如果...

遗传算法的python简单实现

遗传算法的python简单实现 什么是遗传算法 遗传算法是一种比较常用的启发式算法,一般可以对有解析解的式子求得最优解或较优解。一个比较经典的解释是,在喜马拉雅山上的鹿的生存率仅仅由它所处的高度有关。我们不妨设高度越高,存活率越高。那么山上的各个鹿,可能在山峰,也可能在山谷,但是在山谷的鹿...

用BFS求解Word Ladder问题(单词接龙问题)

用BFS求解Word Ladder问题(单词接龙问题) Word Ladder总共有两题,题目类似,在leetcode和lintcode上都有。我之前尝试使用DFS不太好做,后转而用BFS思路求解。以下是两题和解法。 1.Word Ladder 题目 Given two words (...

Reservoir sampling

Reservoir sampling Reservoir sampling is a family of randomized algorithms for randomly choosing a sample of k items from a list S containing n...