- 博客(20)
- 收藏
- 关注
原创 (涛菜菜)董晓算法笔记
(2)小则覆盖:如果a[i]小于或等于b[len],就用a[i]替换掉b数组中第一个大于或等于a[i]的元素。越有利于连接其他元素。(1)大则添加:如果啊a[i]大于b[len],直接让b[++len]=a[i]。即b数组的长度增加1,而且添加了一个 元素。考虑新进来的元素啊a[i]
2024-05-28 10:48:41 310
原创 (涛菜菜)图
用结构体记录一条边链接的点和这条边的边权,用vector存储若干结构体。如果G[u][v]=1,说明有一条从u到v的边,否则没有。如果插入一条无向边(u,v)如果插入一条有向边(u,v)对于一条从a到b的有向边。
2024-04-18 11:37:04 148 1
原创 (涛菜菜)蓝桥杯骗分
如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。每天,农夫约翰的 N(1≤N≤50000)头奶牛总是按同一顺序排好队,有一天,约翰决定让一些牛玩一场飞盘游戏,他决定在队列里选择一群位置连续的奶牛进行比赛,为了避免比赛结果过于悬殊,要求挑出的奶牛身高不要相差太大。它们的价值极大,不仅能初步帮你检验程序的对错(特别坑的样例除外),而且,如果你不会做这道题,你就可以直接输出样例!给你一个问题,让你从一些东西中选出一些,你就可以使用贪心的方法,尽量挑好的。你需要做的,就是发掘出这个答案,然后直接输出。
2024-04-12 20:26:22 311 1
原创 (涛菜菜)字符串处理(字典树)
字典树是用于字符串快速检索的多叉树,每个节点都包含多个自负指针,将从根节点到某一个节点的路径上经过的字符链接起来,为该节点对应的字符串。
2024-04-08 17:24:54 138
原创 (涛菜菜)并查集
划分为不同集合的方法:可以给每一个节点x都复制一个影子x+n,将x,y划分为不同的集合,只需将x和y的影子合并为一个集合,并将x+n和y合并为一个集合。
2024-04-08 16:52:36 171
原创 (涛菜菜)优先队列(堆)
1.若在可以到达的距离范围内有多个加油站,则将这些站点的加油量入队(优先队列)。若走到下一个加油站之前油会耗尽,则需要加油(优先队列中最大加油量)后继续往前走,当当前大于等于L时结束;1.使用优先队列(最小值优先),每次弹出最小的二个数t1,t2,t=t1+t2,sum+=t,将t入队,继续,直 到对空,sum为所需花费。2.插入,若当前元素个数小于k,则直接入队;定义2个优先队列,q1最大值优先,存储最小的n2个数,q2最小值优先,存储最大的n1个数。1.使用优先队列(最小值优先)存储最大的k个数。
2024-04-08 11:21:22 281
原创 (涛菜菜)贪心
并且活动主持人需要全程参与活动,换句话说,一个主持人参与了第 i 个活动,那么该主持人在 (starti,endi) 这个时间段不能参与其他任何活动。有 n 个活动即将举办,每个活动都有开始时间与活动的结束时间,第 i 个活动的开始时间是 starti ,第 i 个活动的结束时间是 endi ,举办某个活动就需要为该活动准备一个活动主持人。贪心思想属于动态规划思想中的一种,其基本原理是找出整体当中给的每个局部子结构的最优解,并且最终将所有的这些局部最优解结合起来形成整体上的一个最优解。
2024-04-02 21:36:09 246 1
原创 (涛菜菜)STL算法
1.vector动态数组1.vector动态数组有些题目需要定义很大的数组,这样会出现“超出内存限制”的错 误,而使用vector可以避免这种错误使用vector,首先需要包含vector头文件 即#include
2024-04-02 17:44:05 312 2
原创 (涛菜菜)广度优先搜索算法
例如, 蒜头君手上有长度为1, 2, 3, 3的4根木棍,他可以让长度为1,2的木棍组成一条边,另外2跟分别组成2条边,拼成一个边长为3的等边三角形。公主被困在迷宫里,王子前去营救公主,王子可以翻越迷宫的墙(但是不能停在墙上面),王子一次可以走两步,公主体弱只能走一步,问在这间迷宫中王子是否可以救出公主(王子和公主相遇后,就背着公主逃出迷宫了)然后有一个m*n的地图,’.‘表示可以通行的路,’#'表示迷宫的墙,'w’表示王子开始的位置,'g’表示公主开始的位置。第一行分别为数的总数,选取几个数,和为多少。
2024-04-01 20:54:37 659 1
原创 (涛菜菜)模拟算法
一个数组A中存有 n 个整数,在不允许使用另外数组的前提下,将每个整数循环向右移 M( M >=0)个位置,即将A中的数据由(A0 A1 ……AN-1 )变换为(AN-M ……AN-M-1 )(最后 M 个数循环移至最前面的 M 个位置)。给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵。数据范围:0
2024-03-31 20:06:04 233
原创 (涛菜菜)c++及数据结构及算法经典题目总结
假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数。给定两个这种链表,请生成代表两个整数相加值的结果链表。数据范围:0≤n,m≤10000000,链表任意值 0≤val≤9要求:空间复杂度 O(n),时间复杂度 O(n)具体做法: 二、反转链表给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。数据范围: 0≤n≤1000要求:空间复杂度 O(1) ,时间复杂度 O(n) 。方法一: vect
2024-03-31 12:16:31 728 6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人