「图解大厂面试高频算法题」链表专题-栅栏涂色
PS: 本文为「图解大厂面试高频算法题」专题,主旨是根据“二八法则”的原理,以付出20%的时间成本,获得80%的刷题的收益,让那些想进互联网大厂的人少走些弯路。
PS: 欢迎关注我获取更多大厂面试总结。
原题链接: https://leetcode-cn.com/problems/paint-fence/
题目介绍
题目解答
首先寻找子问题
题目的原问题是求解用K种颜色粉刷从第0到第N个围栏共有几种方案,这个问题可以拆成如下N个子问题
- 用K种颜色粉刷第0个围栏共有几种方案
- 用K种颜色粉刷从第0到第1个围栏共有几种方案
- … …
- 用K种颜色粉刷从第0到第N-1个围栏共有几种方案
- 用K种颜色粉刷从第0到第N个围栏共有几种方案
注意这题有一个限制就是相邻的栅栏最多连续两个颜色相同,所以小粉刷匠每刷一个围栏的时候,他需要思考这个房子要刷哪种颜色,刷第1种颜色?刷第2种颜色?刷第K种颜色?这样每一个子问题又可以继续拆解变成如下K*N个子问题
- 用K种颜色粉刷从第0到第0个围栏共有几种方案
- 给第0个围栏刷第1种颜色时,粉刷从第0到第0个围栏共有几种方案?
- 给第0个围栏刷第2种颜色时,粉刷从第0到第0个围栏共有几种方案?
- … …
- 给第0个围栏刷第K种颜色时,粉刷从第0到第0个围栏共有几种方案?
- 用K种颜色粉刷从第0到第1个围栏共有几种方案
- 给第1个围栏刷第1种颜色时,粉刷从第0到第1个围栏共有几种方案?
- 给第1个围栏刷第2种颜色时,粉刷从第0到第1个围栏共有几种方案? <