Practice
文章平均质量分 60
鸥梨菌Honevid
此人很帅,什么都没有写
展开
-
9.动态规划——5.背包问题(01【二维+一维】)及例题(分割等和子集)
01背包:n种物品,每种物品只有一个完全背包:n种物品,每种物品有无限个多重背包:n种物品,每种物品个数不同()原创 2024-03-21 13:45:57 · 1282 阅读 · 0 评论 -
9.动态规划——4.最长公共子序列(动态规划类的算法题该如何解决?)
设最长公共子序列dpij是S1的前i个元素,是S2的前jS1i−1==S2i−1dpijdpi−1j−11S1i−1S2i−1dpijmaxdpij−1dpi−1j])原创 2024-04-03 20:39:18 · 1142 阅读 · 0 评论 -
9.动态规划——3.最大上升子序和
例题——最大上升子序和分析需要定义状态dp[i]dp[i]dp[i],表示前i个元素中,包含第i个元素a[i]a[i]a[i]的最大子序和,则:若有j∈[0,i−1]j∈[0,i-1]j∈[0,i−1]当a[j]<a[i]a[j]<a[i]a[j]<a[i]时,有dp[j]+a[i]dp[j]+a[i]dp[j]+a[i]有可能是dp[i]dp[i]dp[i]的值,即dp[i]=maxdp[j]+a[i]dp[i]=max{dp[j]+a[i]}dp[i]=maxdp[j]原创 2024-04-02 00:04:28 · 666 阅读 · 0 评论 -
9.动态规划——2.最大序列和
定义一个状态dpi,计为前i个数构成子序列和的最大值此法状态转移比较困难,即若dpi与dpi−1没有明确的关系,有可能两个子序列和取在不同的连续子串上。原创 2024-04-01 00:17:00 · 609 阅读 · 0 评论 -
9.动态规划——1.从递归到动态规划
例题——N阶楼梯上楼问题分析大事化小:爬N层有F(N)种可能,有F(N)=F(N−1)+F(N−2)F(N)=F(N-1)+F(N-2)F(N)=F(N−1)+F(N−2)小事化了:F(1)=1,F(2)=2F(1)=1,F(2)=2F(1)=1,F(2)=2递归代码#include <cstdio>#include <string>#include <map>#include <algorithm>#include <vecto原创 2024-03-31 00:33:19 · 1010 阅读 · 0 评论 -
8.图论——2.kruskal算法&dijkstra算法
n个顶点组成的带权无向图,其生成树,即包含全部n个顶点并有n-1条边的无向连通子图。最小生成树即各边权值和最小的一棵生成树,求最小生成树有kruskal算法和prim算法。原创 2024-03-30 17:19:41 · 382 阅读 · 0 评论 -
8.图论——1.邻接表与并查集 例题:无向图判连通性
并查集用于动态维护若干个不相交的集合,主要有两个操作路径压缩例题——连通图原创 2024-03-22 11:16:35 · 329 阅读 · 0 评论 -
7.搜索——2.深度优先搜索DFS——有解还是无解
【代码】7.搜索——2.深度优先搜索DFS——有解还是无解。原创 2024-03-19 00:39:26 · 421 阅读 · 0 评论 -
7.搜索——1.广度优先搜索BFS(求最优解)
用途:求最优解。原创 2024-03-18 00:25:12 · 883 阅读 · 0 评论 -
6.二叉树——5.深入map
Olog2n。原创 2024-03-30 17:19:29 · 336 阅读 · 0 评论 -
6.二叉树——4.优先队列(根堆)例题:复数集合+哈夫曼树构造
int value;i < 6;while(!return 0;原创 2024-03-22 11:16:18 · 530 阅读 · 0 评论 -
6.二叉树——3.搜索树
【代码】6.二叉树——3.搜索树。原创 2024-03-29 11:04:21 · 227 阅读 · 0 评论 -
6.二叉树——2.重建树
同理根据后序序列和中序序列也能重构树,但前序和后序不可以。原创 2024-03-28 00:28:12 · 182 阅读 · 0 评论 -
6.二叉树——1.层次建树与遍历
【代码】6.二叉树——1.层次建树与遍历。原创 2024-03-19 00:39:50 · 820 阅读 · 0 评论 -
6.二叉树——0.指针
【代码】6.二叉树——1.指针。原创 2024-03-28 00:27:52 · 210 阅读 · 0 评论 -
5.递归分治——2.如何逐步简化问题
2为左孩子编号,根的编号。原创 2024-03-27 00:27:29 · 273 阅读 · 0 评论 -
5.递归分治——1.递归与函数调用
设一共有n个盘子,已经完成了n-1个盘子的移动,其中,假设移动n个盘子需要F(n)时间,那么移动n-1个盘子需要F(n-1)时间,那么移动最后第n个盘子时,应该进行如下的步骤:(从左到右是ABC杆)因此有:F(n)=3*F(n-1)+2,得到递推公式,容易得到的是F(1)=2,那么代码就好写了。原创 2024-03-27 00:27:08 · 147 阅读 · 0 评论 -
4.线性数据结构——3.栈及例题
【代码】4.线性数据结构——3.栈及例题。原创 2024-03-20 00:04:54 · 430 阅读 · 0 评论 -
4.线性数据结构——2.队列及例题
队列是一个受限的线性表,只允许尾进头出,即先进先出(FIFO)原创 2024-03-20 00:04:15 · 380 阅读 · 0 评论 -
4.线性数据结构——1.vector弥补数组的缺陷及其底层逻辑
/一开始就有3个元素//vec3[0]-[9999]都为0。原创 2024-03-26 17:12:08 · 304 阅读 · 0 评论 -
4.字符串——字符串操作和find方法
size和length都可以。find功能:查询字符或子串。原创 2024-03-25 15:11:57 · 426 阅读 · 0 评论 -
3.排序查找——6.使用map规避二分查找编写错误的风险
Windows平台:AVL树Linux平台:红黑树Onlog2nO(nlog_2n)Onlog2n;Olog2nO(log_2n)Olog2n代价:构建一个树的数据结构,会占用内存参考博客:【C++中map查找元素是否存在的3种方式。原创 2024-03-25 13:50:38 · 967 阅读 · 0 评论 -
3.排序查找——5.顺序查找&二分查找
输入21 30输出-1。原创 2024-03-17 16:56:13 · 794 阅读 · 0 评论 -
3.排序查找——4.成绩排序进阶
输入30fang 90yang 50ning 70输出fang 90ning 70yang 50。原创 2024-03-17 16:55:58 · 351 阅读 · 0 评论 -
3.排序查找——3.成绩排序
使用struct定义一个结构体,里面定义需要的属性变量在定义struct的时候,变量名首字母一般大写,规范。int num;int grade;原创 2024-03-15 15:56:26 · 378 阅读 · 0 评论 -
3.排序查找——2.整数奇偶排序
针对所有排序类题目,首先需要找到关键的比较和交换操作,列出所有不会发生交换的情形,设置一个bool函数在不会交换的条件下返回true,其他的条件返回false,然后传参给sort即可。原创 2024-03-15 15:55:40 · 434 阅读 · 0 评论 -
3.排序查找——1.排序函数
其中,真正排序的序号是从begin到end-1,因此,如果要从begin开始对n个数进行排序,可以这样写//不发生交换的条件先返回真} else{int n;i < n;++i) {//排序,comp后面不加括号,因为是函数名i < n;降序的实现,关键在于实现一个bool函数,将不发生交换的条件设置成true返回,发生交换的条件设置false返回,然后函数名作为第三个参数传给sort即可,注意,传参时候函数不需要加括号。原创 2024-03-12 15:23:11 · 502 阅读 · 0 评论 -
2.模拟问题——7.九宫格键盘输入时间
输入bobwww输出77。原创 2024-03-11 08:06:51 · 683 阅读 · 0 评论 -
2.模拟问题——6.活着的树
输入500 3100 200150 300470 471输出298。原创 2024-03-05 20:00:26 · 358 阅读 · 0 评论 -
2.模拟问题——5.星期几与字符串对应
输入:输出:TuesdaySunday。原创 2024-03-04 00:15:12 · 1715 阅读 · 0 评论 -
2.模拟问题——4.日期问题
日期问题难度并不大,但是代码量非常大,需要较高的熟练度,因此需要着重练习,主要涉及数组和循环两个方面的知识点,需要熟练的测试代码。原创 2024-03-03 22:57:01 · 385 阅读 · 0 评论 -
2.模拟问题——3.叠筐
根据题目要求,即要将中心值放在正方形框正中心,然后依次轮换在外层围上另一个边缘值,围的时候边框要保证中心值和边缘值交替,所围图形保持为一个正方形,围完最后一圈后,需要将四个角的值改成空格。原创 2024-03-03 22:56:27 · 377 阅读 · 0 评论 -
2.模拟问题——2.使用二维数组输出图形
首先要计算出整个输出的方框大小,从而判定相应关键循环点。原创 2024-03-02 08:18:21 · 475 阅读 · 0 评论 -
2.模拟问题——1.输出梯形
第一行是h个*;(h+2*0)第二行是h+2个*;(h+2*1)第i行是h+2*(i-1)个*第h行是h+2*(h-1)个*注意,第h行表示梯形的底边长度,值即为其他行*数和空格数的和。原创 2024-03-02 08:17:41 · 339 阅读 · 0 评论 -
1.枚举问题——3.对称平方数
【代码】1.枚举问题——3.对称平方数。原创 2024-03-01 09:54:40 · 351 阅读 · 0 评论 -
1.枚举问题——2.反序数
【代码】1.枚举问题——2.反序数。原创 2024-02-29 13:36:30 · 370 阅读 · 0 评论 -
1.枚举问题——1.abc问题
【代码】1.枚举问题——1.abc问题。原创 2024-02-29 13:06:12 · 355 阅读 · 0 评论