276 柵欄塗色

2022-05-08 23:45:15 字數 647 閱讀 4931

當只有乙個柱子需要塗色時,有k種可塗色方案;

當有兩個柱子需要塗色時,有k(k-1)【diff】+k【same】種塗色方案;

當有三個柱子需要塗色時,有 (same+diff)*(k-1)【diff】+diff【same】種方案。

1

class

solution(object):

2def

numways(self, n, k):

3"""

4:type n: int

5:type k: int

6:rtype: int

7"""

8if(n==0):

9return010

if(n==1):

11returnk12

13 same=k

14 diff=k*(k-1)

1516

for i in range(3,n+1):

17 prediff=diff

18 diff=( same+diff )*(k-1)

19 same=prediff

2021

return same+diff

276 柵欄塗色

題目描述 有 k 種顏色的塗料和乙個包含 n 個柵欄柱的柵欄,每個柵欄柱可以用其中一種顏色進行上色。你需要給所有柵欄柱上色,並且保證其中相鄰的柵欄柱 最多連續兩個 顏色相同。然後,返回所有有效塗色的方案數。注意 n 和 k 均為非負的整數。示例 輸入 n 3,k 2 輸出 6 解析 用 c1 表示顏...

力扣276柵欄塗色

兩種動態規劃法 一 當前柵欄i與之前柵欄i 1顏色相同,更之前柵欄i 2的塗色方案為f i 2 當前柵欄的塗色方式有k 1種。i與i 1的顏色不一樣,當前柵欄顏色塗色方式有k 1種 f i f i 2 k 1 f i 1 k 1 二 當前i的顏色,由i 1和i 2的顏色是否相同決定 從i 2開始 i...

LeetCode276 柵欄塗色

1.題目描述 有 k 種顏色的塗料和乙個包含 n 個柵欄柱的柵欄,每個柵欄柱可以用其中一種顏色進行上色。你需要給所有柵欄柱上色,並且保證其中相鄰的柵欄柱 最多連續兩個 顏色相同。然後,返回所有有效塗色的方案數。注意 n 和 k 均為非負的整數。示例 輸入 n 3,k 2 輸出 6 解析 用 c1 表...