**LeetCode-Paint Fence

不知道怎么做 

思路是 每次考虑当前这个和前一根是否相同 假如想要相同 那就不可以用上一次是不同的那个次数 

假如不同 就和上上根没有关系 只要跟上一根不同就行 就有k-1种 并且要乘以上一次(dif + same)

最后return 也要把diff same相加

public class Solution {
    public int numWays(int n, int k) {
        if ( n == 0 )
            return 0;
        if ( n == 1 )
            return k;
        int diff = k * ( k - 1 );
        int same = k;
        for ( int i = 2; i < n; i ++ ){
            int temp = diff;
            diff = ( diff + same ) * ( k - 1 );
            same = temp;
        }
        return diff + same;
    }
}


你可能感兴趣的:(**LeetCode-Paint Fence)