1411. Number of Ways to Paint N × 3 Grid
1 | class Solution { |
如果是1行. 可以分类讨论一下:
121情况: 121, 131, 212, 232, 313, 323
123情况: 123, 132, 213, 232, 312, 321
每个都是六种.
那么第二行121和123的情况各是多少种呢?
假设第一行是个121的情况, 比如是131. 那下一行:
121情况: 212, 313, 323.
123情况: 213, 312.
假设第一行是123的情况, 比如是132. 那下一行:
121情况: 212, 232.
123情况: 213, 321.
因此如果第一行是121类型的, 那下一行会有3个121pattern的, 2个123pattern的.
如果第一行是123类型的, 下一行会有2个121pattern的, 2个123pattern的.
因此第n行121pattern的个数为上一行121pattern的个数 * 3 + 上一行123pattern的个数 * 2.
第n行123pattern的个数为上一行121pattern的个数 * 2 + 上一行123pattern的个数 * 2.
最后我们得到最终结果后把121pattern的个数和123pattern个数加在一起就可以了.
时间复杂度: O(n)
空间复杂度: O(1)