
数据结构与算法
敲折耳根的
成都信息工程大学_的学生一枚
展开
-
C语言实现走迷宫,画图分析+源代码
1.分析路用蓝色块表示:0墙用红色块表示:1选定一个入口,人从入口进去,把走过的路标记为1(视为红色,不能再去走),走过的路径用栈stack[++top]保存起来。如图中人的地方,往右边不能走,就把路径出栈stack[top--],回到人原来的地方,并且把它右边标记为1.人再次走的时候就会选择下方去走2.上代码,我们一个一个来看3.首先的来一个迷宫吧,申请一个二维数组便且随机初始化我们的迷宫int**make_array(int rows, int cols){ int**arra原创 2021-03-14 17:42:16 · 6864 阅读 · 2 评论 -
动态规划之寻找最短路径
1.如下一个4*4矩阵,寻找最短路径起点:5 终点:2规则:可以往右边走,可以往下边走观察下图,我们可以看见最短为蓝色路线:18而右边B矩阵右下角的数字就是18,如何由A填充出来B矩阵呢?填充规则如下:第一行:B[i][j]对应A[i][j]+B[i][j-1]第一列:B[i][j]对应A[i][j]+B[i-1][j]这也是为什么填了一圈0在周围那9及其之后的行和列是怎么填充出来的呢?举例:min(13,8)+1=9即:B[i][j]=min(B[i-1][j]+B[i][j原创 2021-03-09 20:47:43 · 1255 阅读 · 0 评论 -
动态规划之寻找最长上升子串问题
1.问题:有这样一串数字,1,4,7,5,6,2,8,9,3,0 ,如何求出它的最长上升子串数目?比如:它会有若干子串1,4,7,8,91,6,9…1,4,5,6,8,9等等若干其中最长的上升串1,4,5,6,8,9****数目为62.方法:2.1 每次当前位置找前面中比当前位置小的元素的对应maxlen中最大的值;说明:2.1.1 最开始num[0]中1前面没有,那么maxlen[0]中就是1, 然后4是当前位置,前面只有1,就是1对应maxlen中值加1为2。原创 2021-03-09 17:38:16 · 201 阅读 · 0 评论 -
动态规划之走台阶
问题:10个台阶,一次可以走一步或者两步问?走完10个台阶,有多少种走法?1.分析:2.代码如下:#include<stdio.h>//....问题:10个台阶,一次可以走一步或者两步........////....问?走完10个台阶,有多少种走法...............//int ResultD_Planning(int n){ if (n < 1)//一个台阶也没有 { return 0; } if (1 == n) { return 1;原创 2021-03-08 23:05:42 · 217 阅读 · 0 评论