代码:
!!动态规划基础版完结撒花
class Solution {
public int numTilings(int n) {
long MOD = 1000000007;
int[] dp = new int[n+1];
dp[0]=1;
for(int i=1;i<=n;i++){
dp[i]+=dp[i-1]%MOD;
dp[i]%=MOD;
if(i>=2){
dp[i]+=dp[i-2]%MOD;
dp[i]%=MOD;
}
for(int j=0;2*j+3<=i;j++){
dp[i]+=dp[i-3-2*j]*2%MOD;
dp[i]%=MOD;
}
for(int j=2;2*j<=i;j++){
dp[i]+=dp[i-2*j]*2%MOD;
dp[i]%=MOD;
}
dp[i]%=MOD;
}
return dp[n]%=MOD;
}
}