題目:
給定一些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]