Paint Fence 栅栏涂色

来源:互联网 发布:苹果2017秋季发布会mac 编辑:程序博客网 时间:2024/04/29 22:43

不能有超过连续两根柱子是一个颜色,也就意味着第三根柱子要么根第一个柱子不是一个颜色,要么跟第二根柱子不是一个颜色。如果不是同一个颜色,计算可能性的时候就要去掉之前的颜色,也就是k-1种可能性。假设dp[1]是第一根柱子及之前涂色的可能性数量,dp[2]是第二根柱子及之前涂色的可能性数量,则dp[3]=(k-1)*dp[1]+(k-1)*dp[2]

class Solution {    int numWays(int n, int k) {        // Write your code here        int a[n-1];        a[0] = k;        a[1] = k*k;        for(int i = 2;i < n;i++){            a[i] = (k-1)*(a[i-1]+a[i-2]);        }        return a[n-1];    }};


0 0
原创粉丝点击