Python实现求矩阵路径最小和,使用动态规划


题目:

给定一些NxN的矩阵,对于任意的路线,定义其【和】为其线路上所有节点的数字的和,计算从左上角到右下角的路线和最小值。每条路线只能从某一点到其周围(上下左右)的点,不可斜行。例如:
4,6
2,8
路线和最小值为 4-2-8 14
1,2,3
4,5,6
7,8,9
路线和最小值为 1-2-3-6-9 21
 
def minSum(list1):
l1=len(list1)
if l1<2:
return list1
list2=list1
for i in xrange(1,l1):
list2[0][i]=list1[0][i-1]+list1[0][i]
list2[i][0]=list1[i-1][0]+list1[i][0]
for i in xrange(1,l1):
for j in xrange(1,l1):
sum1=list2[i][j-1]+list1[i][j]
sum2=list2[i-1][j]+list1[i][j]
if sum1<sum2:
list2[i][j]=sum1
else:
list2[i][j]=sum2
return list2[l1-1][l1-1]


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM