前端算法题之动态规划入门题:机器人走路
题目:给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。
实例:
输入[[1,3,5,9],[8,1,3,4],[5,0,6,1],[8,8,4,0]]
输出12
分析题目:
只有两个方向
一次只能走一个方向
最上边只有来至左边一个方向
最左边只有来至上边一个方向
当前位置的总数永远等于上一个位置的总数加上当前位置的数
两种位移方式但只取数最小的那种方式。
实现:
这里每一个位置的数都是上一个位置的数加上方向上最小的数,但是这其中有N个数是重复计算的,因此需要存储起来方便后面直接调用。因为存在两个方向,因此存储的结构应该是一个二维数组。
不足之处麻烦指出,谢谢!