如何解决LeetCode 256题的算法问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计422个文字,预计阅读时间需要2分钟。
例如,costs[0][0] + 表示第 0 + 号房间粉刷成红色的成本费;costs[1][2]? 表示第 1 + 号房间粉刷成绿色的成本费,以此类推。请计算所有房间粉刷完成后所有房间成本最低的花费。注意:所有花费均平均为正数。
例如,costs[0][0] 表示第 0 号房子粉刷成红色的成本花费;costs[1][2]?表示第 1 号房子粉刷成绿色的花费,以此类推。请你计算出粉刷完所有房子最少的花费成本。
注意:
所有花费均为正整数。
示例:
输入: [[17,2,17],[16,16,5],[14,3,19]]
输出: 10
解释: 将 0 号房子粉刷成蓝色,1 号房子粉刷成绿色,2 号房子粉刷成蓝色。
最少花费: 2 + 5 + 3 = 10。
思路:dp[i][0,1,2]分别代表第i个格子必须用红、蓝、绿刷的最优解。则dp[i][0]的前一个格子可以是蓝或绿,也就是dp[i-1][1和dp[i-1][2]两种情况,取最优解加上cost[i][0]即可。另两种类似。
dp[i]只和dp[i-1]有关,所以用几个变量记录即可。
本文共计422个文字,预计阅读时间需要2分钟。
例如,costs[0][0] + 表示第 0 + 号房间粉刷成红色的成本费;costs[1][2]? 表示第 1 + 号房间粉刷成绿色的成本费,以此类推。请计算所有房间粉刷完成后所有房间成本最低的花费。注意:所有花费均平均为正数。
例如,costs[0][0] 表示第 0 号房子粉刷成红色的成本花费;costs[1][2]?表示第 1 号房子粉刷成绿色的花费,以此类推。请你计算出粉刷完所有房子最少的花费成本。
注意:
所有花费均为正整数。
示例:
输入: [[17,2,17],[16,16,5],[14,3,19]]
输出: 10
解释: 将 0 号房子粉刷成蓝色,1 号房子粉刷成绿色,2 号房子粉刷成蓝色。
最少花费: 2 + 5 + 3 = 10。
思路:dp[i][0,1,2]分别代表第i个格子必须用红、蓝、绿刷的最优解。则dp[i][0]的前一个格子可以是蓝或绿,也就是dp[i-1][1和dp[i-1][2]两种情况,取最优解加上cost[i][0]即可。另两种类似。
dp[i]只和dp[i-1]有关,所以用几个变量记录即可。

