题解 | #跳台阶#
跳台阶
http://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4
此题需要找出青蛙跳的规律:当只有一节台阶时,一共只有一种方法(1);当有两阶时,共有两种方法—(11,2);当有三节时,共有3种方法(111,12,21);当有四节时,共有5种方法(1111,112,121,211,22)……由此可见,当有n节台阶时,青蛙共有f(n-1)+f(n-2)种方式,因此,可采用斐波那契数列方式解题,如下:
int jumpFloor(int number) {
int a = 1;
int b = 2;
int ret = 0;
if(number == 1) return 1;
if(number == 2) return 2;
for (int i = 3; i < number + 1 ; ++i)
{
ret = a + b;
a = b;
b = ret;
}
return ret;
}
海康威视公司福利 1125人发布