题目描述有误 是至多两个相邻一样
此题用动态规划做 因为第j个柱子分为两种情况:
- 和j-1一样
- 和j-1不一样
第一次忘记考虑 特殊情况 柱子很多 只给一种颜色的无解情况
class Solution:
# @param {int} n non-negative integer, n posts
# @param {int} k non-negative integer, k colors
# @return {int} an integer, the total number of ways
def numWays(self, n, k):
# Write your code here
if k == 1 and n > 2:
return 0
if n == 1:
return k
if n == 2:
return k*k
return (k-1)*(self.numWays(n-1,k)+self.numWays(n-2,k))