
数据结构
z岁月无声
这个作者很懒,什么都没留下…
展开
-
LeetCode-32. 最长有效括号
地址:https://leetcode-cn.com/problems/longest-valid-parentheses/思路:利用栈记录入栈字符的下标位置,从头处理字符串,对于s[i],若栈头元素与其匹配,则将其从退栈,并求其长度并保存最大长度,若不匹配则入栈。Code:class Solution{public: int longestValidParentheses(string s){ stack<int> sta; int res=0; for(int i=0.原创 2021-01-06 20:32:36 · 160 阅读 · 0 评论 -
最小生成树-Kruskal算法模板
最小生成树-Kruskal算法:时间复杂度 O(mlogm) ,m为边数模板题:P3366 【模板】最小生成树Code:#include<iostream>#include<algorithm>using namespace std;struct node{ int u,v,w; bool operator<(const node &A)const{ return w<A.w; }};const int MAX_N=5e3+5;con原创 2020-12-23 23:40:40 · 169 阅读 · 0 评论 -
最小生成树-Prim算法模板
最小生成树-Prim算法:未优化:时间复杂度 O(n^2),n为顶点数堆优化:时间复杂度大概为 O((n+m)logm),m为边数模板题:P3366 【模板】最小生成树Code 未优化:#include<iostream>#include<vector>using namespace std;typedef pair<int,int> pr; const int MAX_N=5e3+5;const int INF=1e9+5;int n,m;ve原创 2020-12-23 23:38:32 · 165 阅读 · 0 评论 -
最短路-Dijkstra算法模板
最短路-Dijkstra算法不能处理负权边未优化:时间复杂度为O(n^2) ,n为顶点数堆优化:时间复杂度大概为O((m+n)logm),m为边数模板题(未优化):P3371 【模板】单源最短路径(弱化版)模板题(堆优化):P4779 【模板】单源最短路径(标准版)Code 未优化:#include<iostream>#include<vector>using namespace std;struct node{ int v; int w;};const原创 2020-12-23 23:25:46 · 321 阅读 · 0 评论 -
数据结构-平衡二叉树(C++代码实现)
数据结构中平衡二叉树的C++代码实现有关参考博客:https://blog.youkuaiyun.com/qq_25940921/article/details/82183093https://www.cnblogs.com/zhangbaochong/p/5164994.html代码及其测试结果如下Code :/*二叉平衡搜索树(AVL):对于二叉搜索树的所有结点,其左右节点的高度之差不超过 1 */ #include<iostream>#include<queue>usi原创 2020-12-23 00:39:17 · 3543 阅读 · 2 评论 -
数据结构-二叉排序树(C++代码实现)
数据结构中二叉排序树的C++代码实现有关参考博客:https://blog.youkuaiyun.com/kang___xi/article/details/80392565Code :/*二叉排序树(二叉搜索树):树上所有结点的左子树的值均小于该节点的值,右子树的值均大于该节点的值https://blog.youkuaiyun.com/kang___xi/article/details/80392565*/ #include<iostream>#include<queue>using n原创 2020-12-23 00:33:43 · 3412 阅读 · 0 评论 -
LeetCode-102. 二叉树的层序遍历
地址:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/思路:BFS/DFS思路一、BFS:利用广度优先搜索逐层搜索,每次搜索一层,将下一层的加入队列中即可思路二、DFS:利用深度优先搜索,则为从左向右搜索,对于层数可用变量进行记录即可Code BFS:class Solution { vector<vector<int>> res; queue<TreeNode *.原创 2020-12-18 14:23:26 · 131 阅读 · 0 评论 -
HDU-4192-Guess the Numbers
地址:http://acm.hdu.edu.cn/showproblem.php?pid=4192思路:首先将中缀表达式转为后缀表达式,然后将数组全排列取计算每一个排列的后缀表达式的值即可Code:#include<iostream>#include<algorithm>#include<stack>using namespace std;int n;int d[55];stack<string> sta;string transfo.原创 2020-12-18 12:53:40 · 340 阅读 · 2 评论 -
LeetCode-20. 有效的括号
地址:https://leetcode-cn.com/problems/valid-parentheses/思路:利用栈stack处理Code:#include<iostream>#include<algorithm>#include<vector>#include<stack>#include<unordered_m...原创 2020-01-05 17:02:16 · 175 阅读 · 0 评论 -
牛客-50998.括号画家(栈)
地址:https://ac.nowcoder.com/acm/problem/50998思路:利用栈记录入栈的字符与其下标位置,从头处理字符串,对于str[i],若栈头元素与其匹配,则将其从退栈,并求其长度并保存最大长度,若不匹配则入栈。Code:#include<iostream>#include<stack>#include<map>using namespace std;typedef pair<char,int> pr;int ma.原创 2020-12-02 00:48:08 · 270 阅读 · 0 评论 -
牛客-50963.Editor(栈)
地址:https://ac.nowcoder.com/acm/problem/50963思路:利用两个栈来分别存储下标前和下标后的元素,同时记录下标前的元素其前缀和以及答案即可。Code:#include<iostream>using namespace std;const int MAX_N=1e6+5;int Q,sl,sr;int dl[MAX_N],dr[MAX_N];int Sum[MAX_N],res[MAX_N];int main(){ ios::syn.原创 2020-11-29 23:44:52 · 177 阅读 · 0 评论 -
LeetCode-138. 复制带随机指针的链表
地址:https://leetcode-cn.com/problems/copy-list-with-random-pointer/思路:map || 思维思路一、map:对于原链表head以及复制链表hd,可以用map[head]=hd进行一一对应,这样在处理随机random指针时,直接用map对应到相应复制链表即可。思路二、思维:对于复制链表来说随机指针由于找不到对于位置关系不好处理,因此可以将复制链表的节点插入到原链表对应节点后面,例如p1->pp1->p2->pp2->.原创 2020-11-26 00:27:11 · 139 阅读 · 0 评论 -
LeetCode-206. 反转链表
地址:https://leetcode-cn.com/problems/reverse-linked-list/思路:双指针 || 递归一、双指针:从链表头结点p=head开始反转,需要先保存pi=p->next,再将p->next指向p本身,同时记录已反转链表的头结点head=p(而初始头结点为NULL),然后遍历到下一个节点即可二、递归:思路相同,递归到下一节点,在将当前节点与其下一节点指针反转head->next->next=head,然后令head=NULL(使反转后.原创 2020-11-22 22:39:01 · 152 阅读 · 0 评论 -
51nod-1272 最大距离
1272 最大距离 题目来源: Codility基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注给出一个长度为N的整数数组A,对于每一个数组元素,如果他后面存在大于等于该元素的数,则这两个数可以组成一对。每个元素和自己也可以组成一对。例如:{5, 3, 6, 3, 4, 2},可以组成11对,如下(数字为下标):(0,0), (0, 2), (1, 1...原创 2018-04-09 18:30:32 · 296 阅读 · 0 评论 -
51nod-1102 面积最大的矩形
1102 面积最大的矩形 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注有一个正整数的数组,化为直方图,求此直方图包含的最大矩形面积。例如 2,1,5,6,2,3,对应的直方图如下:面积最大的矩形为5,6组成的宽度为2的矩形,面积为10。Input第1行:1个数N,表示数组的长度(0 <= N <= 50000)第2 - N + 1行:...原创 2018-04-08 18:25:12 · 330 阅读 · 0 评论