序列型動態規劃
與lintcode 515類似,由於顏色數從3變為k,源**經過簡單修改也可ac。
time:3142ms
public
class
solution}}
int res=integer.max_value;
for(
int i=
0;i)return res;
}}
但可在尋找最小值時進行優化,將原演算法複雜度o(n
k2
)o(nk^2)
o(nk2)
降為o (n
k)
o(nk)
o(nk)。
min1
為在f[i-1]
行中的最小值,min2
為在f[i-1]
行中次小值,f[i][j]
如果與f[i-1]
行得最小值顏色相同,則加上min2
,如果不同,直接加min1
。
注意一下維護最小值和次小值的方法.
time:1626ms
public
class
solution
else
if(f[i-1]
[j]}for
(int j=
0;jint res=integer.max_value;
for(
int i=
0;i)return res;
}}
房屋染色 LintCode
這裡有n個房子在一列直線上,現在我們需要給房屋染色,分別有紅色藍色和綠色。每個房屋染不同的顏色費用也不同,你需要設計一種染色方案使得相鄰的房屋顏色不同,並且費用最小。費用通過乙個nx3 的矩陣給出,比如cost 0 0 表示房屋0染紅色的費用,cost 1 2 表示房屋1染綠色的費用。注意事項 所有...
515 房屋染色 序列型動態規劃
中文english 這裡有n個房子在一列直線上,現在我們需要給房屋染色,分別有紅色藍色和綠色。每個房屋染不同的顏色費用也不同,你需要設計一種染色方案使得相鄰的房屋顏色不同,並且費用最小,返回最小的費用。費用通過乙個nx3的矩陣給出,比如cost 0 0 表示房屋0染紅色的費用,cost 1 2 表示...
LintCode 房屋染色II
這裡有n個房子在一列直線上,現在我們需要給房屋染色,共有k種顏色。每個房屋染不同的顏色費用也不同,你需要設計一種染色方案使得相鄰的房屋顏色不同,並且費用最小。費用通過乙個nxk的矩陣給出,比如cost 0 0 表示房屋0染顏色0的費用,cost 1 2 表示房屋1染顏色2的費用。經典的動態規劃問題,...