FlyingCode

导航

 

昨天实习生面试的时候被问到了百级台阶问题

每次有两种选择:上一级台阶、上一百级台阶.

一百级台阶共有多少种选择

开始想通过递归实现,但是面试官告诉我不现实

后来又往分治上面想,发现结果也是错的

当时脑子有点蒙,回来以后才反应过来,就是斐波那契数列,算是最简单的一种dp了= =

不管上多少级台阶最后一步都只有两种选择:(上一级台阶|上两级台阶)

假设最后一步为n

上一级台阶时所有的可能情况就是上n-1级台阶时的所有情况 

上两级台阶时就是求上n-2级台阶时的所有情况

所有res(n)=res(n-1)+res(n-2)

利用循环+数组打表维护即可

posted on 2017-06-24 11:16  hhbeast  阅读(202)  评论(0)    收藏  举报