[Swift]LeetCode265.粉刷房子 II $ Paint House II

[Swift]LeetCode265.粉刷房子 II $ Paint House II,第1张

概述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 ad

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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1021154.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存