Paint House
Problem: Paint House
The solution for current house with one color is decided by the solution of previous house in other two colors. Thus by dynamic programming we can solve this problem.
Code in Python:
class Solution(object):
def minCost(self, costs):
"""
:type costs: List[List[int]]
:rtype: int
"""
if not costs: return 0
for i in xrange(1, len(costs)):
costs[i][0] += min(costs[i-1][1], costs[i-1][2])
costs[i][1] += min(costs[i-1][0], costs[i-1][2])
costs[i][2] += min(costs[i-1][0], costs[i-1][1])
return min(costs[-1])