不知道怎么做
思路是 每次考虑当前这个和前一根是否相同 假如想要相同 那就不可以用上一次是不同的那个次数
假如不同 就和上上根没有关系 只要跟上一根不同就行 就有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;
}
}