解题思路
- 卡特兰数
代码
// 1 2 5 14 卡特兰数从第二项开始
class Solution {
public:
unordered_map<int,int>C;
int Catalan(int n,int mod){
if(n<=1)return C[n]=1;
if(C[n])return C[n];
int ans=0;
for(int i=1;i<n;i++)
ans=(ans+1LL*Catalan(i,mod)*Catalan(n-i,mod))%mod;
return C[n]=ans;
}
int numberOfWays(int numPeople) {
return Catalan(numPeople/2+1,1e9+7);
}
};