变态跳台阶
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
个人理解:假设最后一跳是1则跳法与前n-1个台阶有关;假设最后一条是2则跳法与前n-2个台阶有关;……;假设最后一跳是n-1则跳法与第一个台阶有关。最后结果为n-1项加和后再加1。
代码如下:
1 public class Solution { 2 public int JumpFloorII(int target) { 3 if(target==0){ 4 return 0; 5 }else if(target==1){ 6 return 1; 7 }else if(target==2){ 8 return 2; 9 }else{ 10 int count = 0; 11 for(int i=target-1;i>0;i--){ 12 count += JumpFloorII(i); 13 } 14 return count+1; 15 } 16 } 17 }
(ps:这应该也算递归类的题目吧。。。。。感觉递归重要的是想明白,想明白了就好写代码了)
fire!!!!!!