时间复杂度很麻烦的算法,
class Solution { //直接递归的话会超时
public int numWays(int n) {
// int num1=n+1;
// int array[]=new array[num1];
if(n==0)
return 1;
if(n==1)
return 1;
if (n==2)
return 2;
return numWays(n-1)+numWays(n-2);
}
}
下面展示一些 内联代码片
。
class Solution { //直接递归的话会超时
public int numWays(int n) {
int num1=n+1;
int []array=new int [num1];
if(n==0)
return 1;
if(n==1)
return 1;
array[0]=1;
array[1]=1;
int i=2;
for( i=2;i<=n;i++)
{
array[i]=array[i-1]+array[i-2];
array[i] = array[i] % 1000000007;
}
return array[i-1];
}
}
用一个数组就可以解决
这步 array[i] = array[i] % 1000000007;
防止数值超过int范围