class Solution {
public int waysToStep(int n) {
if(n <= 2)
return n;
if(n == 3)
return 4;
int n1 = 1;
int n2 = 2;
int n3 = 4;
int step = n % 3;int t = 0;
n /= 3;
for(int i = 1; i <= n;i++){
n1 += (n2 + n3)%1000000007;
n1 %= 1000000007;
n2 += (n3 + n1)%1000000007;
n2 %= 1000000007;
t = n3;
n3 += (n1 + n2)%1000000007;
n3 %= 1000000007;
}
if(step == 0)
return t;
if(step == 1)
return n1;
if(step == 2)
return n2;
return 0;
}
}
Leikou 1800 three-step problem (dp iterative writing (save memory))
Guess you like
Origin blog.csdn.net/m0_45311187/article/details/109781949
Ranking