There are a row of n houses,each house can be painted with one of the k colors. 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 k
cost matrix. For example, costs[0][0]
is the cost of painting house 0 with color 0; costs[1][2]
is the cost of painting house 1 with color 2,and so on... Find the minimum cost to paint all houses.
Note:
All costs are positive integers.
Follow up:
Could you solve it in O(nk) runtime?
有一排N栋房子,每栋房子都可以涂上其中一种K颜色。用某种颜色粉刷每栋房子的费用是不同的。你必须把所有的房子都漆成没有两个相邻的房子有相同的颜色。
用一个n x k的成本矩阵表示每栋房子涂上某种颜色的成本。例如,costs[0][0]是用颜色0绘制房子0的成本;costs[1][2]是用颜色2绘制房子1的成本,等等…找出油漆所有房屋的最低成本。
注:
所有成本都是正整数。
进阶:
你能在运行时解决它吗?
1 class Solution { 2 func minCostII(_ costs: [[Int]]) -> Int { 3 if costs.isEmpty || costs[0].isEmpty 4 { 5 return 0 6 } 7 var min1:Int = 0 8 var min2:Int = 0 9 var IDx1:Int = -110 for i in 0..<costs.count11 {12 var m1:Int = Int.max13 var m2:Int = m114 var ID1:Int = -115 for j in 0..<costs[0].count16 {17 var cost:Int = costs[i][j] + (j == IDx1 ? min2 : min1)18 if cost < m119 {20 m2 = m121 m1 = cost22 ID1 = j23 }24 else if cost < m225 {26 m2 = cost27 }28 }29 min1 = m130 min2 = m231 IDx1 = ID132 }33 return min134 }35 }总结
以上是内存溢出为你收集整理的[Swift]LeetCode265.粉刷房子 II $ Paint House II全部内容,希望文章能够帮你解决[Swift]LeetCode265.粉刷房子 II $ Paint House II所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)