Leetcode 265 粉刷房子2

2021-09-24 18:11:33 字數 422 閱讀 2696

hard難度,思路和256幾乎完全相同,先初始化第一排然後用動態轉移方程,但是難點在於題目中要求time complexity為o(k*n),如果用for迴圈來尋找前一排的最小值花費過大,我使用的是arrays.sort(),時間複雜度為o(logn)。找到最小值以後和當前值的上一排做對比,來確定上一排的最小值是不是自己。

class

solution

if(n >1)

arrays.

sort

(temp)

;for

(int j=

0; j)else}}

}int min = integer.max_value;

for(

int i=

0; i)return min;

}}

265 粉刷房子 II

首先這題可以和粉刷房子這題一樣解法,對於i號房子,遍歷k種顏色,對於每一種,都去找i 1號房子除該顏色之外的最小花費。但上一題是3種顏色,總複雜度o n 這題k種顏色,複雜度o nk 2 題目要求o nk 則對於i號房子我們儲存下當前房子最小的花費以備i 1號房子使用,但因為相鄰房子不能塗相同顏色的...

265 粉刷房子 II

題目描述 假如有一排房子,共 n 個,每個房子可以被粉刷成 k 種顏色中的一種,你需要粉刷所有的房子並且使其相鄰的兩個房子顏色不能相同。當然,因為市場上不同顏色油漆的 不同,所以房子粉刷成不同顏色的花費成本也是不同的。每個房子粉刷成不同顏色的花費是以乙個 n x k 的矩陣來表示的。例如,costs...

DP LeetCode265 粉刷房子 II

同類題 leetcode256.粉刷房子 序列型 假如有一排房子,共 n 個,每個房子可以被粉刷成k 種顏色中的一種,你需要粉刷所有的房子並且使其相鄰的兩個房子顏色不能相同。當然,因為市場上不同顏色油漆的 不同,所以房子粉刷成不同顏色的花費成本也是不同的。每個房子粉刷成不同顏色的花費是以乙個 n x...