- 博客(5)
- 收藏
- 关注
原创 动态规划之求解最短路径问题
2.其次我们应该去确定的是这个题目所需要的关系式是什么,到达(i,j)这个位置之前,我们可能在的位置是(i-1,j)或(i,j-1),那这个关系式是 dp【i】【j】=min(dp【i-1】【j】,dp【i】【j-1】)+a【i】【j】(这个点所具有的值)3.第三步我们就要去确定它的初始值,还是要去保证i-1的值>0,j-1的值>0,那么我们就要先去确定第一行和第一列所代表的值。,由于本题的目的是为了去求解路径长度,那么我们就可以去定义数组dp【m】【n】的含义是走到(m,n)的路径大小。
2022-10-13 22:59:19
809
1
原创 动态规划问题之二维数组问题(求解多少路径)
3.第三步,正如我们上一个例题一样,得到了这个关系式之后,我需要去确定初始值是什么,首先初始值就是必须保证i-1,与j-1都不能小于0,则我们把第一行和第一列的值都当成初始值,他们的值是1,因为从初始位置走到这个位置的路径只有一条。2.这个机器人可以向右走也可以向下走,那么走到(i,j)这个位置之前这个机器人可能在(i-1,j),也可能在(i,j-1)这个位置。,题目当中的目的是为了去求解可能有几条路径,那我们不妨去设这个数组代表的是机器人走到(i,j)这个位置时可能的路径个数是d【i】【j】
2022-10-12 19:42:08
409
原创 动态规划问题之上楼梯问题
当我们在第n个台阶,思考一下我们是怎么上来的,可以从n-2个台阶上,也可以从n-1个台阶上,这就得出来一个关键的表达式 【n】=【n-1】+【n-2】,以此类推,我们只需要确定这个数列的【1】与【2】便可以得到整个数列,这个数列其实是一个很典型的斐波那契数列。接下来是另一种很重要的算法,即动态规划,接下来我希望由简到难的讲述这个算法,我们通过例题的方式哈,先从最简单的例题开始吧,不求能给各位将这个算法讲明白,我只是希望能通过这种方式来去学习交流代码编程。废话不多说了,直接上我写的代码吧。
2022-10-09 17:32:45
435
原创 kmp算法求解next数组递归的方法
为什么是两篇代码呢,因为第一篇是我借鉴别人的,第二篇是我在本子上的画了一下这个过程理解之后敲下的,感觉相对而言这种方式更好理解一些,大家根据需求自取吧,最好还是自己根据代码画一下这个过程。这就引出了我们下面的代码。
2022-10-09 14:46:21
221
原创 KMP算法求解next数组问题详解(用c语言解决)
我的这篇文章的特点就在于讲解暴力for循环求解next数组,据我对于本网站的察看,发现对于这一块的讲解缺失,想通过这种方式进行补充,如果我们通过递归的简单方法进行处理的话,简单是简单,但是对于初学者而言不太好去理解,而我的这个for循环很适合初学者去学习。
2022-10-08 20:45:03
807
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人