LeetCode 256. Paint House

来源:互联网 发布:苹果电脑删除mac系统 编辑:程序博客网 时间:2024/05/16 07:37
/*  There are a row of n houses, each house can be painted with one of the three colors: red, blue or green. The cost of painting each house with a certain color is different. You have to paint all the houses such that no two adjacent houses have the same color.The cost of painting each house with a certain color is represented by a n x 3 cost matrix. For example, costs[0][0] is the cost of painting house 0 with color red; costs[1][2] is the cost of painting house 1 with color green, and so on... Find the minimum cost to paint all houses.*/// This method is so far the cleanest I have seen. Copied from others.public int minCost(vector< vector<int> >& costs) {  if(costs.size() == 0 || costs[0].size() == 0) return 0;  int min_red = costs[0][0];  int min_blue = costs[0][1];  int min_green = costs[0][2];  int tmp_red, tmp_blue, tmp_green;  for(int i = 1; i < costs.size(); ++i) {    tmp_red = min_red;    tmp_blue = min_blue;    tmp_green = min_green;    min_red = min(tmp_blue, tmp_green) + costs[i][0];    min_blue = min(tmp_red, tmp_green) + costs[i][1];    min_green = min(tmp_blue, tmp_red) + costs[i][2];  }  return min(min_red, min(min_blue, min_green));}

0 0
原创粉丝点击