算法
Yes ,I can !
这个作者很懒,什么都没留下…
展开
-
层序遍历模板(C++)
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} *原创 2021-08-16 12:50:01 · 309 阅读 · 0 评论 -
二分查找(C++)
// 二分查找,v升序int find(vector<int>& v, int x){ int l = 0, r = v.size(); while(l<=r){ int mid = (l+r)/2; if(v[mid] > x){ r = mid-1; } else if(v[mid] < x){ l = mid+1; }原创 2021-08-02 20:39:42 · 117 阅读 · 0 评论 -
选择排序(c++)
简单选择排序//#include<bits/stdc++.h>// 简单选择排序:// [0, end]找到一个最小值与第0位交换,// [1,end]再找一个最小值与第1位交换,// [2, end]再找一个最小值与第2位交换......#include<iostream>#include<cctype>#include<algorithm>#include<math.h>#include<vector>#i.原创 2021-07-24 11:26:00 · 101 阅读 · 0 评论 -
交换排序(c++)
冒泡排序//#include<bits/stdc++.h>// 冒泡排序#include<iostream>#include<cctype>#include<algorithm>#include<math.h>#include<vector>#include<map>#define ll long longusing namespace std;int n;vector<int> kv.原创 2021-07-23 16:52:34 · 234 阅读 · 0 评论 -
插入排序(c++)
直接插入排序//#include<bits/stdc++.h>#include<iostream>#include<cctype>#include<algorithm>#include<math.h>#include<vector>#include<map>#define ll long longusing namespace std;int n;vector<int> kv;// 直.原创 2021-07-21 22:24:17 · 144 阅读 · 0 评论 -
KMP算法C++代码实现
//#include<bits/stdc++.h>#include<iostream>#include<vector>#include<map>#include<stdlib.h>#include<algorithm>#include<string>#include<string.h>using namespace std;string s;int next_[100];// 求解next数原创 2021-06-06 22:22:08 · 187 阅读 · 0 评论 -
并查集
要用到并查集(union find)参考视频:B站@Python实现# 利用并查集# 并查集的关键就是 find_root函数 和 union函数();# find_root函数:(寻找节点的根节点)# union函数:判断如果某条边的两个顶点的root节点一样,说明这两个点在同一个树上(或者说在同一个集合内),此时也说明另一个问题:该“树”一定存在环【有环的就不叫树喽!!】# 如果root节点不一样,说明这两个顶点处于两个集合中,那么既然他俩有边,可以对这两个集合进行union:parent原创 2021-04-03 15:46:41 · 84 阅读 · 2 评论 -
蓝桥杯-合根植物
本题主要考察并查集(Union Find)如果对并查集不太清楚的,可以参考下面视频:B站视频Python代码实现:# 利用并查集# 并查集的关键就是 find_root函数 和 union函数();# find_root函数:(寻找节点的根节点)# union函数:判断如果某条边的两个顶点的root节点一样,说明这两个点在同一个树上(或者说在同一个集合内),此时也说明另一个问题:该“树”一定存在环【有环的就不叫树喽!!】# 如果root节点不一样,说明这两个顶点处于两个集合中,那么既然他俩有原创 2021-04-03 15:41:37 · 90 阅读 · 2 评论 -
ST表的建立和查询
首先感谢博客:Misaka Mikoto以及up主:星垂月朦胧我是看到这篇博客和up主后对ST表的建立和查询有了一定的了解。写这篇博客也是为了做下笔记,方便复习!一:ST表的建立dp五部曲:dp[i][j]:表示区间左端点为iii,长度为2j2^j2j的区间最大元素,即:max[i,i+2j−1]max[i, i+2^j-1]max[i,i+2j−1]dp[i][j]=max(dp[i][j−1],dp[i+2j−1][j−1])dp[i][j]=max(dp[i][j-1], .原创 2021-03-27 22:41:50 · 867 阅读 · 0 评论 -
“KMP算法”中如何获取next[]数组
“KMP算法”中如何获取next[]数组:以模式串T=“abaabcac”为例:一、应对考试(要求写出T对应的next[]数组):(快速手算)首先列出T的所有前缀(本身不是):前缀最大匹配数a0ab0aba1abaa1abaab2abaabc0abaabca1Ta b a a b c a c...原创 2020-04-15 19:48:08 · 287 阅读 · 0 评论 -
详解扩展欧几里得算法
扩展欧几里得算法:引入:1.求不定方程的通解:2.欧几里得定理:(可以参考:链接)3.裴蜀定理:原创 2020-03-29 00:42:23 · 354 阅读 · 1 评论