自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 三、在kubernetes集群上运行应用

在k8s集群上运行应用

2022-07-08 19:11:53 144 1

原创 二、kubernetes集群的搭建

搭建kubernetes集群

2022-07-08 17:31:21 168

原创 一、kubernetes入门指南

kubernetes入门基础知识

2022-07-01 17:14:42 159

转载 字符串匹配算法

—————  第二天  ————— 什么意思呢?让我们来举一个例子: 在上图中,字符串B是A的子串,B第一次在A中出现的位置下标是2(字符串的首位下标是0),所以返回 2。 我们再看另一个例子: 在上图中,字符串B在A中并不存在,所以返回 -1。 为了统一概念,在后文中,我们把字符串A称为主串,把字符串B称为模式串。 小灰的想法简单粗暴,让我...

2021-07-26 22:06:09 149

原创 前序+后序遍历种类

原文链接:https://blog.csdn.net/csyifanZhang/article/details/105751387我的代码:#include <iostream>#include <stdio.h>#include <string.h>using namespace std;#define ll long longll m;string prestr,poststr;ll ans = 1;ll C(ll a,ll b){

2021-07-24 13:30:25 129

原创 超大数进制转换万能公式

例题:进制转换核心代码://m代表转换前的原始进制,a代表转换的字符串//(该函数输出的字符串a是反向的,低位在前,高位在后),n为转换后的目标进制string conversion(int m, string a, int n){ int len = a.size(), remind = 0; string strout; //只要被除数仍然大于等于1,那就继续模n取余 for(int i = 0; i < len;){ remind = 0

2021-07-21 23:29:02 610

原创 高精度整数计算

高精度整数计算的基本思想:每四位数放进一个digit[]数组变量中,从低到高,同时通过结构体内重载运算符的方法,重新定义该大数数组下加减乘除求余等操作。该结构体主要包含init,set,output,以及+,*,/,%等操作的重载,注意这些重载函数的写法:bigInteger operator * (int x) const{…}bigInteger operator + (const bigInteger &A) const{…}大数进制转换,从m进制转换到n进制,数字极大。#in

2021-07-21 20:33:00 309

原创 二分快速求幂法+余数定理

求x^y时,二分快速求幂法的核心代码://二分快速求幂法x^y while(y!=0){ if(y%2 == 1){ ans = (ans*x); } y/=2; x = x*x; }经典例题:首先是由于x^y可能很大,会超时,所以用快速幂算法。如果y是偶数,那么指数减半底数平方;如果y是奇数,那么给最终的结果乘上x的一次方,这样能够求

2021-07-18 20:57:59 474

原创 素数分解问题

素数分解问题是指将一个数分成多个素数之积,基本方法是:先通过素数筛法,得到一批基本的素数集合;对需要分解的数,不断除以素数,得到可以分解的素数及其次数;如果数字很大,将所有素数都尝试分解过一遍后,发现该数字仍然没有分解为1,那么说明存在一个大于目前所有素数集合的素数,这里直接将该剩余数字作为素数。给出牛客网上的一个经典例题:代码:#include <iostream>#include <stdio.h>#include <queue>using n

2021-07-17 17:39:13 2232

原创 深度优先搜索DFS

深度优先搜索的关键在于递归,在递归的同时还要对路径不断加以标记。基本流程如下:定义dfs函数,函数的参数就是搜索过程中不断迭代的变量;定义标志数组,路径每经过一个点,就要将该点标记,一条路径不能重复经过同一个点,防止路径出现回环;每到达一个新的点,先将其标记。若符合最终条件,则将成功标志位置1,并立即return;若不符合,且不能进一步深入,则直接return;若不符合但是可以进一步深入,则递归深入探索,返回时记得将标记取消。注意:深度优先搜索不会同一个点上,重复选择上一个已经被抛弃的方向,而

2021-07-17 11:32:03 93

原创 广度优先算法BFS

广度优先算法必须先定义一个状态结构体,这个结构体包含如内容:每走一步需要迭代更新的信息;该状态对应的最短步数,一个状态的最短步数存在于它第一次被发现时。广度优先算法需要用到的数据结构是队列,队列记录每个状态。广度优先算法利用队列先进先出的特性,由一个上一层状态不断扩展出新的下一层状态(上一层的状态比下一层的步数少1)。在扩展状态的同时,算法每扩展一个新状态,都要探查它是否就是题设的最终状态。核心代码如下: //初始状态 state a; a.x =

2021-07-15 22:18:06 793

原创 拓扑排序的实现

拓扑排序的定义:实现思路:首先设置一个队列专门存储入度为0的点,同时用vector建立邻接链表;将邻接链表建立完成之后,首先选取入度为0的点加入队列中;当队列不为空时,逐个弹出入度为0的点,删除该点指向其它点的所有边,同时被指向的点的入度也会减一,当该点的入度减为0时,也会加入队列中,不断搜索直至队列为空为止。这样就可以保证指向点永远排在被指向点之前——因为它先进入队列,而队列是先入先出的;同时,可以计算入度为0点的总数,若总数小于点数,说明该图中存在有向无环图。核心代码:

2021-07-14 22:01:24 373

原创 最短路径算法

首先是floyd算法,这种算法可以求出图中任意两点之间的最短距离,但是计算的时间复杂度较高,为O(n^3)。具体实现思路如下:类似于动态规划,设置动态数组d[k][i][j],代表着在只允许经过前k个点时,点i到点j之间的最短路径。其中d[k][i][i]全为0,然后输入边长可以赋予给d[0][i][j]。设置三重循环,对k,i,j进行迭代,每加入一个新的中间点k,那么d[k-1][i][k]+d[k-1][k][j]就是当路径中强行加入点k后的长度,若效果好于前一个最优路径d[k-1][i][j],

2021-07-14 20:06:20 304

原创 kruscal算法实现最小生成树

kruscal算法是用于生成最小生成树的常见算法,最小生成树也就是在包含图中所有节点的树中,边权和最小的那棵树。基本实现方法如下:首先将所有的边从小到大排序;从小边一直搜索到大边,如果一条小边的两个端点,不属于同一个并查集,那么这条小边就是连接这两个集合的最优边,那么将这条小边加入最小生成树中,将两个并查集合并;将所有的边搜索完成,就得到了连通所有节点的最小生成树。示例如下:/*利用kruscal算法得到最小生成树,即生成树中边权和最小的树*/#include <iostream&g

2021-07-14 19:22:41 436

原创 并查集的实现

并查集是图论中,用于表示一个与外界隔离的集合,其中有一个节点作为该集的根结点,所有节点都可以回溯到该根结点,如果两个点的根结点不同,那么它们属于不同并查集,并且没有路径相连。此外,还可以通过路径压缩,所有节点与根结点直接相连,减小回溯时间。并查集的核心代码在于findroot函数,用于寻找每个节点的根结点,根结点的标志在于:它的上级节点tree[root]不存在,等于-1,而其它节点均存在上级节点。这里给出一个例题,并给出利用并查集来解决问题的代码:/*求一个图中的并查集个数*/#inclu.

2021-07-13 22:28:25 84

原创 素数筛法——找出范围内所有素数

基本原理:发现一个素数后,该素数的所有倍数均为非素数。通过这个办法,从素数2开始,不断将非素数标记出来,没有被标记的就是素数,从而逐步筛出素数。(注意:1不是素数)/*利用素数筛法求出一段范围内的素数*/#include <iostream>#include <stdio.h>#include <math.h>#include <string.h>using namespace std;int num[10005]; //非素数为1,素数

2021-07-13 21:43:44 934 1

原创 欧几里得算法求最大公约数

/*用欧几里得算法计算两个数之间最大公约数*/#include <iostream>#include <stdio.h>using namespace std;int a,b;int gcd(int a,int b){ /*核心代码*/ while(b!=0){ int tmp = a%b; a = b; b = tmp; } return a;}int main(){ sc

2021-07-13 21:09:54 135

原创 任意进制转换

基本思路:a进制转10进制,10进制转b进制/*两个不同进制非负整数的转换:a进制转10进制,10进制转b进制*/#include <iostream>#include <stdio.h>#include <stack>#include <math.h>#include <string.h>using namespace std;int a,b;string str;stack<int> result;int

2021-07-13 20:51:40 71

原创 二叉排序树的创建

排序二叉树:大于根节点的数,放到右子树;小于根节点的数,放到左子树。/*输入一串数据,建立二叉排序树:左子树小,右子树大*/#include <iostream>#include <stdio.h>#include <algorithm>using namespace std;struct node{ node *lchild; node *rchild; int c;}Tree[200];int loc = 0;node

2021-07-13 20:27:41 515

原创 二叉树重建

在已知一段输入的前序遍历和中序遍历的情况下,通过前序遍历,可以找到这段输入的根结点,同时在中序遍历中确定其左右子树。这段代码同时还介绍了定义并生成一棵二叉树的基本代码。/*已知前序遍历和中序遍历,求树的重建,并后序遍历*/#include <iostream>#include <stdio.h>#include <algorithm>#include <string.h>using namespace std;struct Node{

2021-07-12 22:05:03 72

原创 哈夫曼树——最小带权路径和的二叉树

构造哈夫曼树的基本思路:关键点在于要运用小顶堆,小顶堆用最少代码完成排序,每次push都会重新排序一次。代码如下:/*采用<queue>的小顶堆,求哈夫曼树——即最小带权路径和,以及对应的二叉树*/#include <iostream>#include <stdio.h>#include <queue>using namespace std;priority_queue<int ,vector<int>,greater<

2021-07-06 21:13:55 644

原创 栈实现简易计算器

基本思路:代码如下:/*利用栈解决计算器问题*/#include <iostream>#include <stdio.h>#include <algorithm>#include <string.h>#include <stack>using namespace std;string formula;//优先级函数:#,+,-,*,/int priority[5][5]={1,0,0,0,0,

2021-07-06 17:45:53 101

原创 贪心算法题

贪心算法:例题1:电视节目思路:每次都选择结束时间最早的电视节目,这样就可以看到最多的电视节目。/*贪心算法之电视节目*/#include <iostream>#include <stdio.h>#include <algorithm>using namespace std;struct item{ int st; int en;}pro[200];int main(){ int n; while(scanf("%

2021-07-06 16:23:27 107

原创 日期问题算法

这里所指的日期问题是,给出两个年月日,求出它们之间间隔的天数。思路:创建类,包含年月日,并给出迭代函数 nextday(),迭代函数需要考虑随着day增加,月与年相应的变化,其中不可忽略闰年。创建初始化函数,类对象不断自我迭代,将第0~第500000天对应到一个三维数组上,三维数组的三维自然是年月日。取两个年月日对应的三维数组相减,得到相隔天数。代码如下:/*日期类问题*/#include <iostream>#include <stdio.h>#include

2021-07-06 00:50:57 179

原创 排版问题算法

排版问题算法的基本思路:将排版转化为一个二维char数组或者int数组,挖掘所给要求中存在的二维数组内部的数学、逻辑关系,并用代码表示出来。这里采用的代码如下:/*画图问题——叠框*/#include <iostream>#include <stdio.h>#include <algorithm>using namespace std;int main(){ int len;char B;char A; while(scanf("%d

2021-07-06 00:41:55 1088

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除