- 博客(52)
- 收藏
- 关注
原创 2023软工作业(一)——计算器
心路历程:先想到的是GUI编程,之前只开发过Web,并没有windows GUI相关经验,然后去百度了解,搜索相关的资料,GUI的用法之类的,然后想到的表达式的处理,这是一个相对比较复杂的过程,我通过自己实现内部函数递归算法和调用库函数的方式实现了表达式的计算,这里面有很多细节需要考虑,不过我认为在这门课中本次任务的目标还是对GUI的使用,毕竟换个环境或者题目这些细节可能又需要重新去考虑。如: 表达式输入错误,返回的值无法表示时返回Inf,输入的值不在数学函数的定义域之内,用户和程序显示内容不同步等错误。
2023-09-28 22:16:40
417
原创 [Minikube]安装有感(含安装教程)
watermalen,我是真的好难受,安装个minikube各种问题最后好像还是版本问题,之前安装的都是latest,然后最后改成了v1.23.1这个版本更稳定,我现在印象最深的是bootstrpping:create error:create:证书密钥已存在?我重新删除了minikube 然后我换成v1.23.1 就成功了这边记录一下我觉得可以成功安装的命令,不知道下次还行不行,毕竟安装这种东西,不同的环境都不一样,可能我下次换个环境安装又出问题,这边简单记录一下。
2023-03-26 20:48:09
769
原创 [关于Context]
首先context是什么?——context是goalng中的经典工具应用场景:1.并发的协调 2.作为存储介质本文根据自身学习到的知识并结合相关文章对context进行解析,主要还是用于博主自己的知识梳理,如果有错误的地方,欢迎批评指正。
2023-03-09 07:00:00
1052
原创 [Web]——限流
限流概念:什么是限流呢?限流是限制到达系统的并发请求数量,保证系统能够正常响应部分用户请求,而对于超过限制的流量,则通过拒绝服务的方式保证整体系统的可用性。限流的分类根据作用范围可以分为单机限流和分布式限流根据限流方式可以分为计数器,滑动窗口,漏桶,令牌桶限流方式:一.计数器原理:在一段时间内通过计数的方式对请求数进行统计,当count超过某个阈值的时候判断是否需要进行限流,到达时间临界点时count清零简单来说就是超过了某个阈值就限流,断绝之后的请求,但是是在某段时间内。
2023-03-08 16:28:05
492
原创 [Gin]框架底层实现理解(三)
第二我们取出来了如果不存在就新建,存在就直接取出来,对于取出来的context进行重置reset,更新各种字段,context是我们装载此次请求的核心,还有当调用这个函数的时候,这里的req都是封装好了此次请求的请求体了,所以我们的context只不过是gin为了我们方便使用 将请求体和响应体对我们包装好了,同时提供了我们操作响应体的函数例如:c.JSON,c.String,c.Set c.Get等等函数方便我们使用请求体和响应体。请求处理完成后,把这块内存归还到 sync.pool 中,
2023-03-08 12:00:00
963
原创 [Gin]框架底层实现理解(二)
得到最后的handlers,在每个group内部是有一个engine的,一般都是隶属同一个engine,具体看上面的结构体实现,所以每个group最后通过那个engine找回引擎,最后的处理还是通过ServerHttp,engine是最后的处理体 我们要将对应的。传参分别是请求类型,相对路径(也就是我们请求的相对url),为什么是相对,因为这个是可以嵌套的,用过gin的都知道有个engine.Group方法可用来分组,可以提取公共url前缀,区域化代码块。这个是上一个函数中核心的函数,简单解析一下。
2023-03-08 07:00:00
655
原创 [Gin]框架底层实现理解(一)
路由原理———压缩字典这边简单讲一下gin非常重要的一个基点,也就是他作为go web框架的一个亮点也就是Trie树和压缩字典算法gin 通过树来存储路由,讲路由的字符拆解为一个个的结点,在获取handler函数时,会根据路由来获取对应的结点,结点中包含了handler函数,根据结点来获取对应的handler函数主要就是压缩字典算法:
2023-03-07 18:18:15
454
原创 Go-micro[windows]安装以及踩坑
只不过很多博主都不说要进行这个操作,我也不知道为啥,我这边的micro是v2版本,我前面跟着一个博主做的时候也是做的v2版本,但是他不需要这部就可以直接通过micro_out生成了.micro.go文件。这一步很重要,我看好多博主都没说,我自己也是踩了坑,我也是因为这个所以tnnd写这篇博客,这个bug搞了我好久。protoc-gen-micro提供了protoc编译器生成go-micro相关api的实现,其位。protoc-gen-go提供了protoc编译器生成go相关api的实现,其位。
2023-02-13 23:53:50
542
1
原创 算法与数据结构实验题 10.24 旅行二——dijkstra算法
王尼玛决定使用火车去旅行,地图上总共有n个城市,其中有k个城市是王尼玛想去玩的城市。由于王尼玛天天为公司加班加点,公司决定奖励他,免费送他去其中的m个城市(也就是说王尼玛能选择这m个城市中的一个作起点)。随后,从起点开始,先求出距离起点最近的结点(一开始会通过map来赋值dis,然后通过dis大小来得到这个结点),然后用vis数组标记该结点代表这个结点已经在最短路径之中。第一行有四个整数n,T,m和k,表示有n个城市和T条路,公司奖励王尼玛其中m个城市,王尼玛喜欢其中的k个城市。
2022-11-24 23:50:08
427
原创 算法与数据结构实验题 10.23 寡人的难题——Kurskal算法
寡人心系天下为国为民,想要在历史中留下点痕迹,就必须要让国家强盛起来,正所谓想致富先修路,寡人觉得去修路,那些吃干饭的大臣给了寡人很多条要修的道路,奈何国库空虚,寡人只能选择其中一些道路,把重点城市连接在一起,并且这些道路的花费要最少,寡人决定让你来接受这个任务,替寡人分忧。第一行有两个正整数n,m,表示有n个城市(城市按照1到n编号),m条道路可选择,接下来有m行,每行有三个正整数u,v,c,分别表示这一条道路连通u和v且花费黄金c两。从权值最小的边开始遍历,若该边的两条端点连通则遍历下一条边。
2022-11-24 23:36:20
299
转载 客观题——归并排序、基数排序和桶排序
3.给出关键字序列{ 4321, 56, 57, 46, 28, 7, 331, 33, 234, 63 },下面哪个选择是按次位优先(LSD)链式基数排序进行了一趟分配和收集的结果?版权声明:本文为CSDN博主「Tuenity」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。1.对N个记录进行归并排序,归并趟数的数量级是:A。5.桶排序算法的时间复杂度T(M, N)是多少?2.对N个记录进行归并排序,空间复杂度为:B。1.合并排序算法是稳定的排序方法。
2022-11-11 18:59:33
675
转载 客观题——排序
若第一趟排序结果为( 1, 3, 7, 5, 2, 6, 4, 9, 11, 10, 8 ),第二趟排序结果为( 1, 2, 6, 4, 3, 7, 5, 8, 11, 10, 9 ),则两趟排序采用的增量(间隔)依次是: (2分)D。解析:增量为3的序列排序得(56,92,19)→(19,56,92),(23,34,88)→(23,34,88),(67,78)→(67,78),从而得出正确答案。3.对关键字序列(56,23,78,92,88,67,19,34),进行增量为3的一趟希尔排序的结果为( )。
2022-11-11 18:56:55
2641
转载 客观题——散列冲突
22.设数字 {4371, 1323, 6173, 4199, 4344, 9679, 1989} 在大小为10的散列表中根据散列函数 h(X)=X%10得到的下标对应为 {1, 3, 4, 9, 5, 0, 2}。3.采用线性探测冲突解决策略,hi(k)=(H(k)+i)mod 11,将散列函数值分别等于2、2、3、3的四个对象a1、a2、a3、a4都插入一个大小为11的空散列表(哈希表)中。20.现有长度为 7、初始为空的散列表HT,散列函数H(k)=k%7,用线性探测再散列法解决冲突。
2022-11-11 18:50:12
3315
转载 客观题——并查集
3.不相交集的数组表示由{2,-4,2,3,-3,5,6,9,-2}给出。请记住,元素的编号是从1到9。5.已知不相交集合用数组表示为{ 4, 6, 5, 2, -3, -4, 3 }。2.不相交集的数组表示由{4,6,5,2,-3,-4,3}给出。1.包含数字0到8的不相交集的数组表示由{1,-4,1,1,-3,4,4,8,-2}给出。7.在不相交集合问题中,给定一组 m 元素 S = {1,2,3,... ,m }和 n (0 < n < m)不同的关系,集合 S 必须有 _ _ 等价类。
2022-11-11 17:18:15
955
原创 并查集——社交集群
其实直接可以:每一个人用第一个兴趣编号作为代表,将一个人的兴趣编号用并查集和并起来,这样有相同兴趣的人就被分在了一个组,然后遍历每一个人,查找他的兴趣的父亲节点,然后用一个计数数组技术便可以得到每个圈子有多少人,不为零的个数就是圈子个数。题目的意思:一号有2 3 4兴趣 二号有 1 3 4 兴趣 三号有8 9 2兴趣,也就是并查集,拥有同一种兴趣的属于一个圈子,一号二号三号都是一个圈子的。首先在一行中输出不同的社交集群的个数。上面是另一个博主的思路,我一开始也想的复杂了,也就是没懂题目的意思;
2022-11-11 16:36:23
104
原创 数据结构与算法——并查集
根据“我的朋友的朋友也是我的朋友”这个推论可以得出,如果A和B是朋友,且B和C是朋友,则A和C也是朋友。当union将这个数并入一个类的时候,i 的祖先结点就不是它本身了,而是另一个j 属的类的祖先结点 也就是 将j的祖先结点赋值为i的祖先结点 pre[ i ] = pre[ j ] 这就是union的操作。也是一样,例如小昭和胡青牛,他们有共同的上级紫衫龙王,紫衫龙王有上级张无忌,殷野王上级有白眉鹰王,白眉鹰王上级有张无忌,所以他们全部都隶属于张无忌的部下,那么他们就知道对方是不是自己的队友。
2022-11-10 23:30:08
149
原创 算法与数据结构实验题 6.34 路径
对于所有的第二个操作,输出一行若干个整数,表示根到 x 的路径序列,数与数之间用空格隔开。对于第一个操作,输入格式为 1 x,表示往集合里插入一个值为 x 的元素。对于第二个操作,输入格式为 2 x,表示询问根到 x 这个元素的路径。题目保证每个数最多只会插入一次,并且保证询问的数在之前已经插入过。输入第一行为一个正整数 N,表示共有 N 个操作。PS:在任意时刻,这样的 AVL 树是唯一的。接下来 N 行,每行一个操作。询问某个元素到根的路径。向树中插入一个元素。
2022-11-08 16:25:26
343
原创 数据结构与算法---客观题 Heap
用线性时间复杂度的算法将给定序列{15, 26, 32, 8, 7, 20, 12, 13, 5, 19}调整为最小堆(小根堆),然后插入6。若每个月要为全市八十岁以上的老人按年龄段发补助,即需要找到这些老人的信息并更新补助发放数据,则以下哪种是最合适的人口数据存储方式?④ 在最大堆(大顶堆)中,从根到任意其它结点的路径上的键值一定是按非递增有序排列的。任何最小堆中从根结点到任一叶结点路径上的所有结点是有序的(从小到大)。哪种树,树中任何结点到根结点路径上的各结点值是有序的?下列的序列中,哪一组是堆?
2022-11-08 15:41:55
2752
2
转载 关于lower_bound( )和upper_bound( )的常见用法
lower_bound( begin,end,num,greater() ):从数组的begin位置到end-1位置二分查找第一个小于或等于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。upper_bound( begin,end,num,greater() ):从数组的begin位置到end-1位置二分查找第一个小于num的数字,找到返回该数字的地址,不存在则返回end。在从小到大的排序数组中,
2022-11-04 16:31:07
155
原创 PTA--windows消息队列
输入首先给出正整数N(≤10^5),随后N行,每行给出一个指令——GET或PUT,分别表示从队列中取出消息或将消息添加到队列中。如果指令是PUT,后面就有一个消息名称、以及一个正整数表示消息的优先级,此数越小表示优先级越高。题目保证队列中消息的优先级无重复,且输入至少有一个GET。同时,如果队列不是空的,这一进程循环地从队列中按照优先级获取消息。请编辑程序模拟消息队列,将消息加到队列中以及从队列中获取消息。对于每个GET指令,在一行中输出消息队列中优先级最高的消息的名称和参数。对于PUT指令则没有输出。
2022-11-04 16:28:28
357
原创 PTA--笛卡尔树
笛卡尔树是一种特殊的二叉树,其结点包含两个关键字K1和K2。首先笛卡尔树是关于K1的二叉搜索树,即结点左子树的所有K1值都比该结点的K1值小,右子树则大。其次所有结点的K2关键字满足优先队列(不妨设为最小堆)的顺序要求,即该结点的K2值比其子树中所有结点的K2值小。给定一棵二叉树,请判断该树是否笛卡尔树。输入格式:输入首先给出正整数N(≤1000),为树中结点的个数。随后N行,每行给出一个结点的信息,包括:结点的K1值、K2值、左孩子结点编号、右孩子结点编号。设结点从0~(N-1)顺序编号。
2022-11-04 16:15:21
360
原创 PTA--特殊堆栈
堆栈是一种经典的后进先出的线性结构,相关的操作主要有“入栈”(在堆栈顶插入一个元素)和“出栈”(将栈顶元素返回并从堆栈中删除)。本题要求你实现另一个附加的操作:“取中值”——即返回所有堆栈中元素键值的中值。给定 N 个元素,如果 N 是偶数,则中值定义为第 N/2 小元;若是奇数,则为第 (N+1)/2 小元。对每个 Push 操作,将 key 插入堆栈,无需输出;对每个 Pop 或 PeekMedian 操作,在一行中输出相应的返回值。若操作非法,则对应输出 Invalid。Push 表示“入栈”;
2022-11-04 16:03:50
554
原创 PTA-抢红包
输入第一行给出一个正整数N(≤104),即参与发红包和抢红包的总人数,则这些人从1到N编号。随后N行,第i行给出编号为i的人发红包的记录,格式如下:其中K(0≤K≤20)是发出去的红包个数,Ni是抢到红包的人的编号,Pi(>0)是其抢到的红包金额(以分为单位)。注意:对于同一个人发出的红包,每人最多只能抢1次,不能重复抢。
2022-09-28 17:34:39
690
2
原创 Beego 常见错误(一)
这个错误呢是因为你当前运行的模块没有go mod文件,go 在某个版本之后一些包依赖就开始依赖于go mod来创建了,我在下载beego的时候也遇到如此错误,就指向上面那个GO111MODULE的命令就可以了设置为on或者auto;//这个是github网站,不过我个人感觉还挺快的,连不上的话等几分钟就可以了可能,如果实在链接不上就用上面那个gitee。GO111MODULE=on 模块支持,go命令行会使用modules,而一点也不会去GOPATH目录下查找。很多包都在国外,访问速度慢,经常下载失败。
2022-09-24 21:39:58
1309
原创 PTA----双端队列
其中Deque/* 存储元素的数组 *//* 队列的头、尾指针 *//* 队列最大容量 */ };Push和Inject应该在正常执行完操作后返回true,或者在出现非正常情况时返回false。当Front和Rear相等时队列为空,Pop和Eject必须返回由裁判程序定义的ERROR。
2022-09-22 19:11:05
356
原创 PTA-列车调度问题
因为火车是逆序输出的,而且属于FIFO,所以一开始应该先去判断增加轨道的条件,而这个条件就是如果当前这个数字大于前一个数字,那么就开一个轨道(这保证了每一个轨道都是逆序输出的)如果小于,则要从第一个轨道开始找,直到找到第一个大于该数的轨道,把该数放入这个轨道中如果这个轨道是最上面的那个轨道,就把当前数认作前一个数字(下一次比较的时候就是比较这个值来判断是否要开辟轨道)如果不是就只要把这个轨道的最小值设置一下就可以了,因为每次都是比较最小值,所以设置这个最小值会方便。
2022-09-22 16:52:42
393
原创 ====BFS====
当遇到一些层次较深的树图时,dfs一读到底的风格就不太适合一些限制时间的题,因为针对这些内存巨大的,使用dfs就会比较耗时,比方说一个数有1000个树枝,每个树枝有100个子叶,第1000的第一颗叶子就是正解,但是在遍历的时候却选择从第一个树枝开始遍历且一读到底,遍历到正解得时候已经做了999*100次遍历了,这时只要把dfs换成bfs,就会节约许多时间,只需要1000次的遍历就可以找到答案,所以由上可得,在一些大的内存或者层次比较的大树,应选择使用bfs来解决;像一些需要一步一步的完成就要选择bfs。
2022-09-21 15:39:49
100
原创 算法与数据结构实验题 4.17 Maze
迷宫是由 ‘ . ’ ‘ # ’ 构成,’ . ’表示可以通行,‘#’表示墙壁,不能通行,现在小仓鼠在‘S’的位置上,问到出口’E’的最短时间是多少?接下来输入一个 n*m 的迷宫(只包含 ’ . ’ , ’ # ’, ’ S ’,’ E ’)有一只小仓鼠身处在一个 N*M 迷宫之中,它现在想知道它最快能什么时候到达出口。第一行两个整数 n,m(1
2022-09-21 15:38:11
369
原创 在一个数组中实现两个堆栈
其中Tag是堆栈编号,取1或2;MaxSize堆栈数组的规模;Stack};};注意:如果堆栈已满,Push函数必须输出“Stack Full”并且返回false;如果某堆栈是空的,则Pop函数必须输出“Stack Tag Empty”(其中Tag是该堆栈的编号),并且返回ERROR。
2022-09-17 09:55:51
155
原创 算法与数据结构--彩虹瓶<堆栈>
但如果工厂按照 3、1、5、4、2、6、7 这个顺序发货,工人就必须要愤怒地折腾货架了,因为装填完 2 号颜色以后,
2022-09-16 18:07:59
98
原创 算法与数据结构实验题 2.19 幸运儿
有 q 次操作,假设当前还有 m 个人,那么这次操作将会筛除从头开始数第 k*bi 的人(k=1,2,3,……,m/bi 向下取整),bi 为第 i 个操作的数,且 bi 为素数。对于 100%的数据,1
2022-09-14 20:15:04
597
原创 算法与数据结构实验题 2.20 最长递增子段
你的任务是找到 A 的最长的子段,这样就可以从子段最多改变一个数(可改变为任一个整数),使子段严格地增加。我们将子段 A 称为 Ai、Ai +1、Ai+ 2、…Aj(1
2022-09-14 20:11:16
581
原创 错题----复数类的运算
根据以下代码段完善 ?? 处内容及程序内容,以实现规定的输出。输入格式:输入有两行,分别为两个复数的实部与虚部。按样例格式输出结果。在这里给出一组输入。例如:输出样例:在这里给出相应的输出。例如:易错:前后的c1如果直接在原来的对象上操作会影响后面的对象操作,因为前面的+-并没有对源对象发生影响,只是讲相加或者相减的结果赋值给另外一个,所以在加减的时候要用另外一个对象作为返回值,不改变运算符两侧的对象代码
2022-06-02 13:09:53
252
原创 DFS——寻宝
奕哥今天玩到一款寻宝游戏,地图是一个n*m的矩阵,其中分布着一些宝藏,每个宝藏具有一定的价值,奕哥只能拿走其中一个宝藏。奕哥起始在a行b列。奕哥可以向相邻的一格移动,但不能走出地图外。奕哥初始体力值X,移动一格需要消耗体力值为1。体力耗尽后奕哥无法继续移动。地图中有一些障碍物,奕哥无法移动到障碍物上。奕哥想知道他能拿到的最具价值的宝藏是哪一个。输入格式:第一行包含5个整数n,m,a,b,X。n,m分别表示地图行数,列数;a,b表示奕哥起始位置在a行b列;X表示奕哥的体力。( 1<=n,m&
2022-04-02 11:54:02
230
原创 BFS——龙舌兰酒吧
7 龙舌兰酒吧 (100 分)有一个大小为n*m的矩形小镇,城镇上有房屋(“#”表示无法通过),有空地(“.”表示可通行),每次移动只能朝上下左右四个方向,且需花费1单位时间。一天,二乔和承太郎约定在龙舌兰酒吧见面,两人同时从各自所在位置向酒吧出发。请问最少需要过多少时间他们才能在酒吧碰面。地图上P表示二乔的位置,W表示承太郎的位置,B表示酒吧的位置。输入格式:第一行包含两个整数n,m,表示城镇的大小。(1<=m,n<=1000)。接下来n行,每行m个字符,表示小镇的情况
2022-04-02 11:42:00
126
原创 c++STL——List容器
*List*赋值和交换 assign(beg , end); <!--将区间【beg,end】中的数据拷贝赋值//--> assign(n,elem); <!--将n个elem拷贝赋值给本身//--> 重载运算符= ; <!--重载等号,等号两遍直接赋值//--> swap(list) ; <!--将list与本身交换;//--> 大小操作 size(); <!--list的当前大小;/-->
2022-04-02 11:26:22
876
原创 c++STL案例——演讲比赛系统
SpeechManager.h头文件创建其中的接口是一步一步在后面实现的功能时候加的一开始从菜单show_menu接口开始#pragma once#include<iostream>#include<vector>#include<map>#include"speaker.h"using namespace std;class SpeechManager {public: SpeechManager(); void show_menu
2022-04-02 11:10:07
948
原创 C++——二进制文件读写
一.写文件1.导入<fstream>头文件2.创建 ofs 对象3.给定文件内容4.写文件5.关闭文件代码示例:#include<iostream>#include<string.h>#include<fstream>using namespace std; class person{ public: char m_name[64]; long long age;};void test(){ //创建ofs
2022-03-25 00:06:09
2537
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人