本文主要是介绍剑指offer——铺地板,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
我们可以用2x1的小矩形(下左)去横着或竖着覆盖更大的矩形,请问用8个2x1的小矩形无重叠覆盖一个2x8的大矩形(下右),共有多少种方法?
解题思路:
从左边起覆盖,
若第一次小矩形横着覆盖,有f(6)种方法,
若第一次小矩形竖着覆盖,有f(7)种方法,
即f(n) = f(n-1) + f(n-2)
也是属于斐波那契数列
int solve(int n){int res[] = {0,1};if(n < 2) return res[n];int fa = 1, fb = 1, fn = 0;for(int i = 2; i <= n; i++){fn = fa + fb;fa = fb;fb = fn;}return fn;}
这篇关于剑指offer——铺地板的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!