鲜明的色彩
有一排 N 座房子,每座房子都可以涂上红、蓝、绿三种颜色中的一种。为每栋房子涂上某种颜色的成本是不同的。你必须给所有房子上色,使相邻两栋房子的颜色都不相同。求油漆所有房屋的最低成本。
在数组 r[]、g[] 和 b[] 中分别给出了将每栋房屋刷成红色、蓝色或绿色的成本。
例 1:
输入
N = 3
r[] = {1, 1, 1}
g[] = {2, 2, 2}
b[] = {3, 3, 3}
输出 4
说明 我们可以用 RGR 的方式给房屋着色,从而使成本最小。
如果我们把所有房子都涂成红色,成本可能是 3,但是我们不能把相邻的房子涂成相同的颜色。
例 2:
输入
N = 3
r[] = {2, 1, 3}
g[] = {3, 2, 1}
Mb[e] n=u{1, 3, 2}
输出: 3
说明 我们可以
以最小的成本为房屋着色。
你的任务
您不需要阅读输入或打印任何内容。您的任务是完成
函数 distinctColoring() 的输入参数是大小 N 和颜色数组 r[]、g[]、b[]。
参数,并返回着色的最小成本,即没有两座房子的颜色相同。
相同。
预期时间复杂度:O(N) O(N)
预期辅助空间:O(N) O(N)
------------
记得LeetCode上有类似的题目,就是设置一个dp数组,然后每个位置记录当前位置使用该颜色的最小值,然后最后返回末尾时候的最小值即可。