算法
ryunin
这个作者很懒,什么都没留下…
展开
-
单调栈算法
这里写自定义目录标题什么是单调栈?范式:单调递增栈单调递减栈单调栈的作用:什么是单调栈?单调栈分为单调递增栈和单调递减栈,单调递增栈即栈内元素保持单调递增的栈,同理单调递减栈即栈内元素保持单调递减的栈,跟单调队列差不多,但是只用到它的一端,利用它可以用来解决一些ACM/ICPC和OI的题目,如RQNOJ 的诺诺的队列等。范式:单调递增栈for(int i = 0; i < T.si...转载 2019-10-30 14:27:49 · 344 阅读 · 0 评论 -
C++实现快速排序,简单明了
直接看代码#include <bits/stdc++.h>using namespace std;int partition(vector<int>& array, int low, int high) { int ptr = low - 1; int less = low; int more = high;//这里需要定义三个指针,more可以不...原创 2019-04-10 11:59:44 · 221 阅读 · 0 评论 -
C++实现大根堆
一、堆的定义堆的物理存储结构是一维数组,逻辑存储结构是完全二叉树。堆的基本操作包括:insert–向堆中插入一个元素,deleteTop–删除堆顶元素上面的图片就是一个大根堆,大根堆具有以下性质:每一个节点的值都小于它父节点的值。我们也可以从上面的图片中看出来。但是需要注意的是,每一个节点的值的大小与它所处的深度没有必然的联系。我们如果将这个最大堆存入数组中,就需要按照索引顺序存入:...原创 2019-04-25 22:02:14 · 4982 阅读 · 3 评论 -
KMP——最长公共前后缀数组
#include <iostream>#include <vector>#include <string>class Solution{public: std::vector<int> getIndexofMax(std::string &input) { std::vector<int> result; ...原创 2019-06-10 17:58:17 · 637 阅读 · 0 评论 -
KMP算法
#include <iostream>#include <vector>#include <string>class Solution{public: std::vector<int> getIndexofMax(std::string &input) { std::vector<int> result; ...原创 2019-06-10 23:03:41 · 129 阅读 · 0 评论