矩阵最小路径和问题(升级版)

来源:互联网 发布:淘宝上的瑕疵冰箱 编辑:程序博客网 时间:2024/03/28 22:29

问题:给定一个n*m的矩阵,矩阵中元素非负,从左上角到右下角找一条路径,使得路径上元素之和最小,每次可以向左、向右、向下或者向上走一格。

ps:  我想用动态规划,发现好麻烦,因为上一步确定了的最小值,到下一步可能就被推翻了,毕竟可以弯曲着走。

然后想到一个递归方法:例如到中间的2这里的最小值为周围abcd四个矩阵的最小值加2,但是问题又来了。

算中间2的时候,需要向右扩宽一列(即b),而算b时候,又会缩小算到2这里来,递归就陷入了死循环,

又想着给算过的矩阵来个flag,防止重算,还是之前动态规划的问题,矩阵一旦变大或者变小,确定过的值在当前就不一定是最小的了。

本人还想用到数据结构的链表,走过的点加入链表,按加入顺序从左上角指向到右下角,如果下一步路径改变了,由于是指针也好修改。

But,啊啊啊啊,还是同样的问题,矩加过的节点要变动,是的改变指向可能不难,但是可能会回退到前几步,那又要重新开始加节点,也可能死循环

哇,头疼了。本人只是小白一个,想不到很好的解决办法,还望各位大佬指点迷津哭



原创粉丝点击