"""
题目:
一排n幢房子需要粉刷成红色、绿色和蓝色,不同房子被粉刷成不同颜色的成本不同。用一个n*3的数组表示n幢房子分别用3种颜色粉刷的成本。
要求任意相邻的两幢房子的颜色都不一样,请计算粉刷这n幢房子的最少成本。
例如:
粉刷3幢房子的成本分别为[[17, 2, 16],[15, 14, 5],[13, 3, 1]],那么分别将这3幢房子粉刷成绿、蓝、绿是最低成本,为10.
分析:
使用一个二维矩阵min_cost,去记录每个房子刷成每个颜色的成本,第一个房子就不变了。第二个房子如果刷红色,则它的成本等于min_cost[1][0] = t[1][0]+min(t[0][1],t[0][2]), 同样的道理,
min_cost[1][1] = t[1][1]+min(t[0][0],t[0][2]).如此这般,把min_cost二维矩阵一个一个计算。
当刷到第i个房子时,它的最低成本就是min(min_cost[i])
"""
costs = [
[17, 2, 16],
[15, 10, 5],
[1300, 300, 1]
min_costs = [
[17,2,16],
[17,26,7],
[1307,3007,18]
]