2025-11-25 01:36:09
楼梯踏步最简单算法就是说爬楼梯的时候每一步可以选走一阶或者两阶对吧。比如说到第三阶的话,走两步就能到,因为先上一阶再上一阶或者直接两阶上去。这个算法主要是算从第一阶到第n阶需要多少步,而且每一步的选择都影响后面怎么走。比如到第五阶的话,最少要爬五步(每步都走一阶),但如果中间有走两阶的步骤,步数就会少。比如到第六阶,走两步两阶加两步一阶,总共四步就能到。
那为什么是这个答案呢?首先这个算法跟斐波那契数列有关系,因为到第n阶的步数等于到n-1阶和n-2阶的步数之和。比如到第三阶是前两阶的步数加起来(1+2=3),到第四阶是前两阶的步数(3+2=5),到第五阶是5+3=8,到第六阶是8+5=13。不过这里有个误区,如果允许走一阶或两阶的话,最少步数其实是n除以2向上取整,比如到第五阶最少3步(两两两),但用户说的可能是动态规划解法。根据实验数据,当n=5时最少需要3步,n=6最少需要4步,n=7最少需要4步,所以这个算法其实是找最优解的路径选择问题。比如到第七阶的话,走两步两阶加两步一阶,总共四步,而如果一直走一阶需要七步,所以算法核心就是找中间最优的走法。
本题链接: