552. 学生出勤记录 II
题目链接:552. 学生出勤记录 II
代码如下:
//参考链接:https://leetcode.cn/problems/student-attendance-record-ii/solutions/2885313/python3javacgo-yi-ti-yi-jie-ji-yi-hua-so-s7z2
class Solution
{
public:
int checkRecord(int n)
{
vector<vector<vector<int>>> f(n,vector<vector<int>>(2,vector<int>(3,-1)));
auto dfs=[&](auto&& dfs,int i,int j,int k)->int
{
if(i>=n) {return 1;}
if(f[i][j][k]!=-1) {return f[i][j][k];}
int res=dfs(dfs,i+1,j,0);
if(j==0)
{
res=(res+dfs(dfs,i+1,j+1,0))%mod;
}
if(k<2)
{
res=(res+dfs(dfs,i+1,j,k+1))%mod;
}
return f[i][j][k]=res;
};
return dfs(dfs,0,0,0);
}
private:
const int mod=1e9+7;
};